Я строю систему с помощью 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.
Может быть, каждое изображение докера было отделено.
Я думаю, что мне нужно крошить каждое изображение, чтобы получить доступ к другому.
Но я новичок в докере, так что путайте с ним.
Здесь есть какое-нибудь решение?
Спасибо.