MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Грешка при свързване с Mongodb вътре в контейнера за докер

ДОБРЕ. аз го реших. С помощта на този блог тук - https://dev.to/hugodias/wait-for-mongodb-to-start-on-docker-3h8b

Трябва да изчакате mongod да стартира напълно вътре в контейнера. Ключът depend_on в docker-compose.yml не е достатъчен.

Ще трябва също да актуализирате своя Dockerfile, за да се възползвате от docker-compose-wait.

За справка - ето моите актуализирани файлове docker-compose и Dockerfile.

версия:'3.7'

services: 

  api:
    build: ./
    working_dir: /usr/src/api-boiler/
    restart: always
    environment: 
      PORT: 3001
      MONGODB_URI: mongodb://mongodb:27017/TodoApp
      JWT_SECRET: asdkasd9a9sdn2r3513032
    ports:
      - "3001:3001"
    volumes:
      - ./:/usr/src/api-boiler/ 
    depends_on:
      - mongodb
    environment:
      WAIT_HOSTS: mongodb:27017

  mongodb:
    image: mongo
    container_name: mongodb
    restart: always
    volumes:
     - 27017:27017
FROM node:10.8.0

WORKDIR /usr/src/api-boiler

COPY ./ ./

RUN npm install

EXPOSE 3001

## THE LIFE SAVER
ADD https://github.com/ufoscout/docker-compose-    wait/releases/download/2.2.1/wait /wait
RUN chmod +x /wait

# CMD ["/bin/bash"]
CMD /wait && npm run start:dev



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Фатална грешка:Клас 'MongoDB\Driver\Manager' не е намерен

  2. 5 начина да получите секундите от дата в MongoDB

  3. MongoDB индекс за различни типове

  4. Намерете и пребройте елементи от колекция с Mongoose

  5. Създайте ISO обект за дата в javascript