From e823cbce175f0bea1ee0013ccc20bb6bbc857255 Mon Sep 17 00:00:00 2001 From: "nikita.hohlov" Date: Sat, 5 Sep 2026 06:28:43 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20production=20compose=20=E2=80=94=20serv?= =?UTF-8?q?ersideup=20image,=20loopback=20port=208091,=20scheduler=20and?= =?UTF-8?q?=20worker=20off=20the=20app=20image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw --- docker-compose.prod.yml | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docker-compose.prod.yml diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..c12867d --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,54 @@ +# Прод на ishiki: hado живёт рядом с прокси sekai, порт только на loopback — +# Caddy (network_mode: host) ходит в 127.0.0.1:8091, наружу порт закрыт (см. deploy/Caddyfile.snippet). +# Один env на всё: core/.env — его читают и контейнеры (env_file), и сам compose (--env-file) для postgres. +# Запуск: docker compose --env-file core/.env -f docker-compose.prod.yml up -d --build +services: + app: + build: ./core + image: hado-app + restart: unless-stopped + ports: + - "127.0.0.1:8091:8080" + env_file: ./core/.env + environment: + # serversideup: миграции и кеши при старте — только здесь, чтобы не гонять их из трёх контейнеров + AUTORUN_ENABLED: "true" + depends_on: + postgres: + condition: service_healthy + + scheduler: + image: hado-app + restart: unless-stopped + command: ["php", "/var/www/html/artisan", "schedule:work"] + env_file: ./core/.env + depends_on: + app: + condition: service_healthy + + worker: + image: hado-app + restart: unless-stopped + command: ["php", "/var/www/html/artisan", "queue:work", "--tries=3", "--sleep=1"] + env_file: ./core/.env + depends_on: + app: + condition: service_healthy + + postgres: + image: postgres:17 + restart: unless-stopped + environment: + POSTGRES_DB: ${DB_DATABASE:-hado} + POSTGRES_USER: ${DB_USERNAME:-hado} + POSTGRES_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD in .env next to this file} + volumes: + - pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME:-hado} -d ${DB_DATABASE:-hado}"] + interval: 5s + timeout: 3s + retries: 10 + +volumes: + pg_data: