diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..d6fcdc8 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,21 @@ +# Прод-оверлей: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build +# +# TLS и публичный домен держит Nginx Proxy Manager сервера (внешняя сеть `web`). +# Наружу торчит только frontend — и то лишь в сеть `web`, без портов на хосте; +# api/postgres/redis доступны исключительно внутри сети compose. + +services: + api: + ports: !reset [] + + frontend: + ports: !reset [] + networks: + default: + web: + # Имя, по которому NPM проксирует: Forward Hostname = lux-fiscal-frontend, порт 80. + aliases: [lux-fiscal-frontend] + +networks: + web: + external: true diff --git a/docker-compose.yml b/docker-compose.yml index ff3cdc6..ea70939 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,6 +35,8 @@ services: # Миграции выполняются отдельным одноразовым контейнером, а не при старте api. # Иначе при нескольких репликах api они пошли бы параллельно. migrate: + # Один образ на migrate/api/worker, а не три одинаковых копии на диске. + image: lux-fiscal-backend:latest build: context: ./backend env_file: .env @@ -48,6 +50,7 @@ services: restart: "no" api: + image: lux-fiscal-backend:latest build: context: ./backend restart: unless-stopped @@ -68,6 +71,7 @@ services: - receipt_storage:/app/storage worker: + image: lux-fiscal-backend:latest build: context: ./backend restart: unless-stopped