From dfcc8e37c6bc37edae4bbe57f54c8ee4e85b7e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20M=C3=B6rling?= Date: Wed, 20 May 2026 12:45:08 +0200 Subject: [PATCH] fix: isolate prod deploy from dev env port conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The production deploy failed because port 3000 was already bound by the dev frontend container (bilhej-frontend). The prod frontend doesn't need a host port at all — nginx talks to it via the external 'web' network. Changes: - Remove host port binding (3000:80) from prod frontend - Remove unused 'certs' volume from prod compose - Use --project-name bilhej-prod in deploy workflow to isolate prod containers/networks from dev and e2e environments - Add 'docker compose down' before 'up' for clean deploys - Update health check network names to bilhej-prod_default --- .forgejo/workflows/deploy.yml | 9 +++++---- docker-compose.prod.yml | 5 ----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index e14d37c..63ee5fe 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -42,7 +42,8 @@ jobs: - name: Build and start production stack run: | - docker compose -f docker-compose.prod.yml up --build -d + docker compose -p bilhej-prod -f docker-compose.prod.yml down + docker compose -p bilhej-prod -f docker-compose.prod.yml up --build -d - name: Wait for services run: sleep 20 @@ -50,7 +51,7 @@ jobs: - name: Health check — backend API run: | for i in 1 2 3 4 5; do - if docker run --rm --network bilhej_default curlimages/curl:8.5.0 \ + if docker run --rm --network bilhej-prod_default curlimages/curl:8.5.0 \ -sf http://bilhej-backend-prod:8080/api/vehicles/ZZZ999; then echo "Backend is healthy" exit 0 @@ -64,7 +65,7 @@ jobs: - name: Health check — frontend run: | for i in 1 2 3 4 5; do - if docker run --rm --network bilhej_default curlimages/curl:8.5.0 \ + if docker run --rm --network bilhej-prod_default curlimages/curl:8.5.0 \ -sf http://bilhej-frontend-prod/ | grep -qi "bilhej\|Bilhej\|BilHej"; then echo "Frontend is serving" exit 0 @@ -82,7 +83,7 @@ jobs: echo " Deployed ${{ github.event.inputs.version }} to production" echo "═══════════════════════════════════════════════════" echo "" - docker compose -f docker-compose.prod.yml ps + docker compose -p bilhej-prod -f docker-compose.prod.yml ps echo "" echo "Containers running. Update nginx config on srvr.nu" echo "to point bilhej.se to the frontend container." diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 81a89e5..3787e6d 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -39,12 +39,8 @@ services: dockerfile: docker/frontend.prod.Dockerfile context: . container_name: bilhej-frontend-prod - ports: - - "3000:80" depends_on: - backend - volumes: - - certs:/etc/nginx/certs networks: - default - web @@ -52,7 +48,6 @@ services: volumes: pgdata-prod: - certs: networks: web: