From 10ab0055d53ea8779dea8fd055ab451c359beb85 Mon Sep 17 00:00:00 2001 From: Nicolas Fryder Date: Tue, 30 Jun 2026 22:27:47 +0200 Subject: [PATCH] =?UTF-8?q?fix(admin):=20alias=20r=C3=A9seau=20d=C3=A9di?= =?UTF-8?q?=C3=A9=20pour=20=C3=A9viter=20la=20collision=20DNS=20prod/dev?= =?UTF-8?q?=20sur=20"api"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause du 404 intermittent : les stacks prod et dev déclarent tous les deux un service nommé "api" attaché au même réseau externe coolify. Docker DNS répond aléatoirement avec l'IP du conteneur prod OU dev pour le nom "api" — quand admin/nginx tombait sur le mauvais conteneur (inaccessible depuis cet environnement), ça donnait "connect() failed: Connection refused" puis 404 côté client. Le resolver dynamique (commit précédent) ne corrige pas cette collision, il la rend juste plus visible/intermittente. Fix : alias réseau unique par environnement (bm-api-internal en prod, dev-api-internal en dev) sur le service api, et apps/admin/Dockerfile prend un ARG API_UPSTREAM substitué par sed dans nginx.conf au build, pointant vers l'alias correspondant. Co-Authored-By: Claude Sonnet 4.6 --- apps/admin/Dockerfile | 2 ++ docker-compose.dev.yml | 6 +++++- docker-compose.yml | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/admin/Dockerfile b/apps/admin/Dockerfile index beaf368..e59a9ad 100644 --- a/apps/admin/Dockerfile +++ b/apps/admin/Dockerfile @@ -1,3 +1,5 @@ FROM nginx:alpine +ARG API_UPSTREAM=http://api:3000 COPY site/ /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf +RUN sed -i "s|http://api:3000|${API_UPSTREAM}|g" /etc/nginx/conf.d/default.conf diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index d0a7a17..9af2eec 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -85,7 +85,9 @@ services: ADMIN_SEED_USERNAME: ${ADMIN_SEED_USERNAME} ADMIN_SEED_PASSWORD_HASH: ${ADMIN_SEED_PASSWORD_HASH} networks: - - coolify + coolify: + aliases: + - dev-api-internal labels: - traefik.enable=true - traefik.docker.network=coolify @@ -98,6 +100,8 @@ services: admin: build: context: apps/admin + args: + API_UPSTREAM: http://dev-api-internal:3000 networks: - coolify labels: diff --git a/docker-compose.yml b/docker-compose.yml index 967cc48..758bcdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -57,7 +57,9 @@ services: ADMIN_SEED_USERNAME: ${ADMIN_SEED_USERNAME} ADMIN_SEED_PASSWORD_HASH: ${ADMIN_SEED_PASSWORD_HASH} networks: - - coolify + coolify: + aliases: + - bm-api-internal labels: - traefik.enable=true - traefik.docker.network=coolify @@ -70,6 +72,8 @@ services: admin: build: context: apps/admin + args: + API_UPSTREAM: http://bm-api-internal:3000 networks: - coolify labels: