Как получить доступ к Mongodb, как местные - PullRequest
0 голосов
/ 09 ноября 2018

Я строю систему с помощью Docker для тестирования в локальном режиме.

Также используйте docker-compose, чтобы связать все изображения с одним инфра.

Ниже приведены изображения, которые я использовал.

  • nginx: последний
  • монго: последний
  • Ubuntu: последний
  • питон: 3.6.5

(питон для фляги)приложение)

[docker-compose.yml]

version: '3.7'

services:
  nginx:
    build: 
      context: .
      dockerfile: docker/nginx/dockerfile
    container_name: nginx
    hostname: nginx-dev
    ports:
      - '80:80'
    networks: 
      - backend

  mongodb:
    build:
      context: .
      dockerfile: docker/mongodb/dockerfile
    container_name: mongodb
    hostname: mongodb-dev
    ports:
      - '27017:27017'
    networks:
      - backend

  web_project:
    build:
      context: .
      dockerfile: docker/web/dockerfile
    container_name: web_project
    hostname: web_project_dev
    ports:
      - '5000:5000'
    networks:
      - backend
    tty: true
    depends_on:
      - mongodb
    links:
      - mongodb

  redis:
    image: redis:latest
    container_name: redis
    hostname: redis_dev

networks: 
  backend:
    driver: 'bridge'

[dockerfile mongo]

FROM mongo:latest

EXPOSE 27017

[dockerfile python]

FROM python:3.6.5

COPY . ./home
WORKDIR home
RUN pip install -r app/requirements.txt
CMD python manage.py run

Когда я запускаю локальное веб-приложение python flask, оно работает нормально, потому что mongodb также находится в локальном.

Но я запускаю с docker-compose up, он не может получить доступ к mongodb.

Может быть, каждое изображение докера было отделено.

Я думаю, что мне нужно крошить каждое изображение, чтобы получить доступ к другому.

Но я новичок в докере, так что путайте с ним.

Здесь есть какое-нибудь решение?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

[РЕШИТЬ]

Я изменил 'host': 'mongodb-dev:27017' до 'host': 'mongodb-:27017',

и работает отлично.

Я думаю, это происходит по ссылкам: mongodb.

0 голосов
/ 09 ноября 2018

Убедитесь, что вы указали свой Mongo в приложении Flask с именем хоста mongodb-dev вместо localhost

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...