From 2291fd12a93fb1e48d500f40b6ef80a0fd2479bd Mon Sep 17 00:00:00 2001 From: Aaron Po Date: Sun, 4 Oct 2026 19:50:50 -0400 Subject: [PATCH] docker updates --- web/docker-compose.prod.seed.yaml | 40 +++++++++++++++++++++++++++++++ web/docker-compose.prod.yaml | 34 ++++---------------------- 2 files changed, 44 insertions(+), 30 deletions(-) create mode 100644 web/docker-compose.prod.seed.yaml diff --git a/web/docker-compose.prod.seed.yaml b/web/docker-compose.prod.seed.yaml new file mode 100644 index 00000000..941074c7 --- /dev/null +++ b/web/docker-compose.prod.seed.yaml @@ -0,0 +1,40 @@ +# One-shot seed job for the production stack, kept out of +# docker-compose.prod.yaml so that bringing production up, or restarting it, +# never reloads the catalogue. Run it deliberately, once the prod stack is +# healthy: +# +# docker compose --env-file web/.env.prod -f web/docker-compose.prod.seed.yaml run --rm --build database.seed +# +# Its own project name keeps it from treating the prod stack's containers as +# orphans; it joins the prod network to reach sqlserver and seaweedfs. +name: biergarten-prod-seed + +services: + database.seed: + env_file: ".env.prod" + image: database.seed + container_name: prod-env-database-seed + build: + context: ./backend + dockerfile: Database/Database.Seed/Dockerfile + args: + BUILD_CONFIGURATION: Release + APP_UID: 1000 + environment: + DOTNET_RUNNING_IN_CONTAINER: "true" + DB_SERVER: "${DB_SERVER}" + DB_NAME: "${DB_NAME}" + DB_USER: "${DB_USER}" + DB_PASSWORD: "${DB_PASSWORD}" + SEAWEEDFS_SERVICE_URL: "${SEAWEEDFS_SERVICE_URL}" + SEAWEEDFS_ACCESS_KEY_ID: "${SEAWEEDFS_ACCESS_KEY_ID}" + SEAWEEDFS_SECRET_ACCESS_KEY: "${SEAWEEDFS_SECRET_ACCESS_KEY}" + SEAWEEDFS_BUCKET: "${SEAWEEDFS_BUCKET}" + restart: "no" + networks: + - prodnet + +networks: + prodnet: + name: biergarten-prodnet + external: true diff --git a/web/docker-compose.prod.yaml b/web/docker-compose.prod.yaml index 70c8661d..286f8960 100644 --- a/web/docker-compose.prod.yaml +++ b/web/docker-compose.prod.yaml @@ -46,41 +46,12 @@ services: networks: - prodnet - database.seed: - env_file: ".env.prod" - image: database.seed - container_name: prod-env-database-seed - depends_on: - database.migrations: - condition: service_completed_successfully - seaweedfs: - condition: service_started - build: - context: ./backend - dockerfile: Database/Database.Seed/Dockerfile - args: - BUILD_CONFIGURATION: Release - APP_UID: 1000 - environment: - DOTNET_RUNNING_IN_CONTAINER: "true" - DB_SERVER: "${DB_SERVER}" - DB_NAME: "${DB_NAME}" - DB_USER: "${DB_USER}" - DB_PASSWORD: "${DB_PASSWORD}" - SEAWEEDFS_SERVICE_URL: "${SEAWEEDFS_SERVICE_URL}" - SEAWEEDFS_ACCESS_KEY_ID: "${SEAWEEDFS_ACCESS_KEY_ID}" - SEAWEEDFS_SECRET_ACCESS_KEY: "${SEAWEEDFS_SECRET_ACCESS_KEY}" - SEAWEEDFS_BUCKET: "${SEAWEEDFS_BUCKET}" - restart: "no" - networks: - - prodnet - api.core: env_file: ".env.prod" image: api.core container_name: prod-env-api-core depends_on: - database.seed: + database.migrations: condition: service_completed_successfully seaweedfs: condition: service_started @@ -164,4 +135,7 @@ volumes: networks: prodnet: + # Fixed name so docker-compose.prod.seed.yaml, which runs as its own Compose + # project, can attach to this network as an external one. + name: biergarten-prodnet driver: bridge