From 0193c79ca311a47975353a5dfb6ca62831b9c4b2 Mon Sep 17 00:00:00 2001 From: Alexandre Telal Date: Mon, 23 Mar 2026 15:00:08 +0700 Subject: [PATCH 1/2] fix: use restart: always in production docker compose Follow Docker Compose production best practices by using restart: always instead of restart: unless-stopped for all services. Closes #64 Co-Authored-By: Claude Opus 4.6 (1M context) --- docker/docker-compose.production.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/docker-compose.production.yml b/docker/docker-compose.production.yml index 189995f4..25ab7554 100644 --- a/docker/docker-compose.production.yml +++ b/docker/docker-compose.production.yml @@ -68,7 +68,7 @@ services: - traefik_logs:/var/log/traefik networks: - openspp-prod - restart: unless-stopped + restart: always # Traefik should start first and stay healthy healthcheck: test: ["CMD", "traefik", "healthcheck"] @@ -98,7 +98,7 @@ services: # - ./initdb:/docker-entrypoint-initdb.d:ro networks: - openspp-prod - restart: unless-stopped + restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-odoo} -d ${DB_NAME:-openspp}"] interval: 10s @@ -174,7 +174,7 @@ services: - odoo_addons:/mnt/extra-addons networks: - openspp-prod - restart: unless-stopped + restart: always labels: # Traefik configuration - "traefik.enable=true" @@ -284,7 +284,7 @@ services: - odoo_addons:/mnt/extra-addons networks: - openspp-prod - restart: unless-stopped + restart: always deploy: resources: limits: @@ -323,7 +323,7 @@ services: - backup_data:/backups networks: - openspp-prod - restart: unless-stopped + restart: always # ========================================================================== # ClamAV - Antivirus scanning (optional, enable with --profile clamav) @@ -346,7 +346,7 @@ services: - clamav_data:/var/lib/clamav networks: - openspp-prod - restart: unless-stopped + restart: always healthcheck: test: ["CMD", "/usr/local/bin/clamdcheck.sh"] interval: 60s From 1b38fc0aa2e2feebdc3a732b9aee383b3af98c35 Mon Sep 17 00:00:00 2001 From: Alexandre Telal Date: Mon, 23 Mar 2026 16:00:08 +0700 Subject: [PATCH 2/2] fix: add healthcheck for queue-worker service Add process-based healthcheck using pgrep to detect if the job_worker process is running, complementing the restart: always policy. Co-Authored-By: Claude Opus 4.6 (1M context) --- docker/docker-compose.production.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/docker-compose.production.yml b/docker/docker-compose.production.yml index 25ab7554..6e40dcb3 100644 --- a/docker/docker-compose.production.yml +++ b/docker/docker-compose.production.yml @@ -285,6 +285,12 @@ services: networks: - openspp-prod restart: always + healthcheck: + test: ["CMD-SHELL", "pgrep -f 'odoo.addons.job_worker.cli' || exit 1"] + interval: 30s + timeout: 10s + start_period: 60s + retries: 3 deploy: resources: limits: