51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
# Прод на VPS: /root/kvarta_site/docker-compose_vps.yml (кладёт deploy/deploy.sh).
|
||
# На сервере только docker-compose v2.23 (без плагина `docker compose`):
|
||
# KVARTA_TAG=<sha> docker-compose -f docker-compose_vps.yml -p kvarta up -d
|
||
# Наружу порты не торчат — только 127.0.0.1, снаружи ходит nginx хоста.
|
||
name: kvarta
|
||
|
||
x-logging: &logging
|
||
# диск сервера почти полный — логи ротируются: не больше 3 × 10 МБ на контейнер
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
services:
|
||
landing:
|
||
image: kvarta-landing:${KVARTA_TAG:-latest}
|
||
container_name: kvarta-landing
|
||
restart: unless-stopped
|
||
ports:
|
||
- "127.0.0.1:13120:3000"
|
||
logging: *logging
|
||
|
||
api:
|
||
image: kvarta-api:${KVARTA_TAG:-latest}
|
||
container_name: kvarta-api
|
||
restart: unless-stopped
|
||
ports:
|
||
- "127.0.0.1:13121:3000"
|
||
env_file: api.env
|
||
environment:
|
||
# nginx хоста приходит в контейнер со шлюза сети, а не с 127.0.0.1 (docker-proxy);
|
||
# порт привязан к 127.0.0.1, так что со шлюза может прийти только он
|
||
TRUSTED_PROXIES: 172.31.120.1
|
||
volumes:
|
||
- kvarta-data:/data
|
||
logging: *logging
|
||
|
||
networks:
|
||
default:
|
||
name: kvarta
|
||
ipam:
|
||
# фиксированная подсеть, чтобы шлюз в TRUSTED_PROXIES не менялся; на сервере 172.31.0.0/16 свободна
|
||
config:
|
||
- subnet: 172.31.120.0/24
|
||
gateway: 172.31.120.1
|
||
|
||
volumes:
|
||
kvarta-data:
|
||
# явное имя: не зависит от project name, его ищут бэкапы и восстановление
|
||
name: kvarta-data
|