deploy(compose): healthcheck su server e client, depends_on condizionati (#38)

server: healthcheck su /api/health. client: healthcheck su /auth/login
(pagina di login, raggiungibile senza sessione). depends_on passa a
condition: service_healthy dove dipende da server/client (client->server,
nginx->server+client in dev). Aggiunge WEB_CONCURRENCY=4 e
TRUSTED_PROXY_COUNT=1 nell'environment del server (li legge il backend).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 22:33:32 +02:00
parent 0dce2299d0
commit ac9bc14f5d
2 changed files with 36 additions and 4 deletions
+20 -3
View File
@@ -34,11 +34,19 @@ services:
DB_HOST: mysql
UPLOAD_DIR: uploads
VISION_WORKER_URL: http://vision:8100
WEB_CONCURRENCY: ${WEB_CONCURRENCY:-4}
TRUSTED_PROXY_COUNT: ${TRUSTED_PROXY_COUNT:-1}
volumes:
- upload_data:/app/uploads
depends_on:
mysql:
condition: service_healthy
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
networks:
- tmflow-net
@@ -70,7 +78,14 @@ services:
environment:
API_SERVER_URL: http://server:8000
depends_on:
- server
server:
condition: service_healthy
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5000/auth/login', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
networks:
- tmflow-net
@@ -87,8 +102,10 @@ services:
# - ./certbot/conf:/etc/letsencrypt:ro
# - ./certbot/www:/var/www/certbot:ro
depends_on:
- server
- client
server:
condition: service_healthy
client:
condition: service_healthy
networks:
- tmflow-net