Настройка двух разных проектов, созданных на основе django-cookie-cutter, для работы на одном сервере
Как я могу запустить два разных проекта, сгенерированных на основе django-cookie-cutter, на одном сервере. Проекты сгенерированы с помощью Docker. Я полагаю, что нужно изменить порты, чтобы избежать столкновений. Но поскольку существует так много конфигурационных файлов, любая помощь будет оценена по достоинству.
Я включил секцию портов для сервисов, определенных в docker-compose.local.yml, включая postgres, django и т.д. :
docker-compose.local.yml
services:
django: &django
ports:
- '8001:8000' #map host 8001 to container 8000
postgres:
ports:
- '5433:5432' #map Host port 5433 to container 5432
У вас должен быть файл 'production.yml'. Остальные файлы и службы должны остаться прежними. И просто измените конфигурацию nginx, чтобы принимать трафик на другом порту. Доступ к вашим сервисам 'postgres' и 'django' другие контейнеры получают по именам, а не по порту, который они открывают. Это должна быть ваша конфигурация nginx.
nginx:
build:
context: .
dockerfile: ./compose/production/nginx/Dockerfile
image: calcscore_python_local_nginx
depends_on:
- django
volumes:
- production_django_media:/usr/share/nginx/media:ro
ports:
- 8001:80
restart: unless-stopped
Теперь, когда вы заходите на порт 8001, он попадет на нужный контейнер nginx. А благодаря сетевому взаимодействию в docker compose контейнер nginx будет знать, к какому сервису postgres или django ему следует обратиться.