From 3a2f9c2dd149d7389f13215be3684c8aff71b7c7 Mon Sep 17 00:00:00 2001 From: chpark Date: Wed, 13 May 2026 20:43:36 +0900 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20SERVER=5FAPI=5FURL=20=EB=B9=8C?= =?UTF-8?q?=EB=93=9C=20=EC=8B=9C=EC=A0=90=20=EC=A3=BC=EC=9E=85=20=E2=80=94?= =?UTF-8?q?=20next.config=20rewrites()=20=EA=B0=80=20build-time=20?= =?UTF-8?q?=EB=B2=A0=EC=9D=B4=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Next.js rewrites 는 빌드 시점에 평가되므로 SERVER_API_URL 미주입 시 fallback 127.0.0.1:8080 이 베이크되어 컨테이너에서 ECONNREFUSED. ARG SERVER_API_URL 로 받아 ENV 노출 → 빌드 시 http://pipeline-backend:8080 으로 베이크. Co-Authored-By: Claude Opus 4.7 (1M context) --- docker/edge/Dockerfile.frontend.prod | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/edge/Dockerfile.frontend.prod b/docker/edge/Dockerfile.frontend.prod index fc073352..16ce3dea 100644 --- a/docker/edge/Dockerfile.frontend.prod +++ b/docker/edge/Dockerfile.frontend.prod @@ -1,8 +1,14 @@ # Pipeline Frontend — 엣지 배포용 프로덕션 이미지 (next build standalone) # next.config 의 output: "standalone" 산출물을 그대로 실행. node .next/standalone/server.js +# +# 주의: next.config 의 rewrites() 는 빌드 시점에 환경변수를 평가하므로 +# SERVER_API_URL 을 ARG 로 받아 ENV 로 노출한 뒤 빌드해야 한다. FROM node:20-bookworm-slim AS builder +ARG SERVER_API_URL=http://pipeline-backend:8080 +ENV SERVER_API_URL=$SERVER_API_URL + WORKDIR /app COPY package*.json ./ @@ -10,7 +16,7 @@ RUN npm ci --prefer-offline --no-audit COPY . . -# 프로덕션 빌드 (standalone) +# 프로덕션 빌드 (standalone) — rewrites() 가 SERVER_API_URL 을 베이크 ENV NEXT_TELEMETRY_DISABLED=1 RUN npm run build