From 3690456d2e83b1a0cf9278f7d1a05e5115b1c47f Mon Sep 17 00:00:00 2001 From: yuehuiqi Date: Sat, 1 Aug 2026 21:06:31 +0800 Subject: [PATCH 1/2] fix: frontend startup ordering and Ray shm sizing in docker-compose --- deployment/docker/datamate/docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployment/docker/datamate/docker-compose.yml b/deployment/docker/datamate/docker-compose.yml index d12b1aa50..99b41453b 100644 --- a/deployment/docker/datamate/docker-compose.yml +++ b/deployment/docker/datamate/docker-compose.yml @@ -89,6 +89,7 @@ services: - frontend_log_volume:/var/log/datamate/frontend networks: [ datamate ] depends_on: + - datamate-gateway - datamate-backend - datamate-backend-python @@ -111,9 +112,11 @@ services: container_name: datamate-runtime image: ${REGISTRY:-}datamate-runtime:${VERSION:-latest} restart: on-failure + shm_size: "10gb" environment: RAY_DEDUP_LOGS: "0" RAY_TQDM_PATCH_PRINT: "0" + RAY_DEFAULT_OBJECT_STORE_MEMORY_PROPORTION: "0.5" LOG_ROTATION_MAX_SIZE: ${LOG_ROTATION_MAX_SIZE:-100MB} LOG_ROTATION_BACKUP_COUNT: ${LOG_ROTATION_BACKUP_COUNT:-30} PG_HOST: "datamate-database" From 681c09750d3e7f6a808f62f936db1db876ee2205 Mon Sep 17 00:00:00 2001 From: yuehuiqi Date: Sun, 2 Aug 2026 13:58:04 +0800 Subject: [PATCH 2/2] address Copilot review: add gateway healthcheck, use condition: service_healthy depends_on only sequenced container start, not readiness -- the frontend could still race the gateway before it was actually accepting connections. Added a healthcheck to datamate-gateway (curl against its own port; there's no Spring Boot Actuator on this image per backend/api-gateway/pom.xml, so a plain "did we get any HTTP response" check is the honest signal available) and switched datamate-frontend's dependency on it to condition: service_healthy. backend/backend-python keep condition: service_started (unchanged behavior). --- deployment/docker/datamate/docker-compose.yml | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/deployment/docker/datamate/docker-compose.yml b/deployment/docker/datamate/docker-compose.yml index 99b41453b..98265ba3b 100644 --- a/deployment/docker/datamate/docker-compose.yml +++ b/deployment/docker/datamate/docker-compose.yml @@ -75,6 +75,18 @@ services: volumes: - log_volume:/var/log/datamate networks: [ datamate ] + healthcheck: + # No Spring Boot Actuator on this image (see backend/api-gateway/pom.xml), + # so there's no dedicated /health path -- just confirm the gateway is + # accepting and completing HTTP requests on its own port. curl exits 0 on + # any completed response (including 404), and only fails on a connection + # error, which is exactly the "is the process up and routing" signal we + # need for depends_on: condition: service_healthy below. + test: [ "CMD", "curl", "-s", "-o", "/dev/null", "http://localhost:8080/" ] + interval: 10s + timeout: 5s + retries: 5 + start_period: 20s datamate-frontend: container_name: datamate-frontend @@ -89,9 +101,12 @@ services: - frontend_log_volume:/var/log/datamate/frontend networks: [ datamate ] depends_on: - - datamate-gateway - - datamate-backend - - datamate-backend-python + datamate-gateway: + condition: service_healthy + datamate-backend: + condition: service_started + datamate-backend-python: + condition: service_started datamate-database: container_name: datamate-database