From c5801a0ba468ef40505ddcbb6bbde6f5da722881 Mon Sep 17 00:00:00 2001 From: eecavanna Date: Tue, 4 Mar 2025 18:05:28 -0800 Subject: [PATCH] Prevent some services from starting until `mongo-init` finishes running --- docker-compose.base.yml | 12 +++++++++--- docker-compose.test.yml | 1 + docker-compose.yml | 4 ---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docker-compose.base.yml b/docker-compose.base.yml index fc9ed715..d22875f6 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -60,7 +60,10 @@ services: DAGSTER_POSTGRES_PASSWORD: "postgres_password" DAGSTER_POSTGRES_DB: "postgres_db" depends_on: - - dagster-postgresql + dagster-postgresql: { condition: service_started } + # Wait until the MongoDB replica set has been set up by the "init container" + # before starting this Dagster daemon container. + mongo-init: { condition: service_completed_successfully } volumes: - ./:/opt/dagster/lib @@ -75,6 +78,10 @@ services: - "8000:8000" volumes: - .:/code + # Wait until the MongoDB replica set has been set up by the "init container" + # before starting this FastAPI container. + depends_on: + mongo-init: { condition: service_completed_successfully } # Short-lived MongoDB server used to initialize the one used by the FastAPI application. mongo-init: @@ -84,8 +91,7 @@ services: - ./wait-for-it.sh:/wait-for-it.sh:ro - .docker/mongo_init/initialize_replica_set.sh:/initialize_replica_set.sh:ro depends_on: - mongo: - condition: service_started + mongo: { condition: service_started } entrypoint: /bin/bash /wait-for-it.sh --host=mongo --port=27017 --timeout=20 -- /bin/sh /initialize_replica_set.sh mongo 27017 admin root # MongoDB server used by the FastAPI application. diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 7edebb7d..50d4874c 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -48,6 +48,7 @@ services: container_name: test env_file: .env.test depends_on: + mongo-init: { condition: service_completed_successfully } mongo: { condition: service_started } fastapi: { condition: service_started } dagster-daemon: { condition: service_started } diff --git a/docker-compose.yml b/docker-compose.yml index ba328baa..dddd9c9f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,10 +22,6 @@ services: extends: { file: docker-compose.base.yml, service: fastapi } command: ["uvicorn", "nmdc_runtime.api.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"] env_file: .env - # Wait until the MongoDB replica set has been set up by the "init container" - # before starting this FastAPI container. - depends_on: - mongo-init: { condition: service_completed_successfully } # Short-lived MongoDB server used to initialize the one used by the FastAPI application. mongo-init: