From 8bc7bc50c0cc96e0343437f47654fa9c84b1fe50 Mon Sep 17 00:00:00 2001 From: chpark Date: Sat, 30 May 2026 15:14:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(docker):=20runtime=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=EC=97=90=20git=20+=20docker=20CLI=20+=20dockerhost(GI?= =?UTF-8?q?D=20988)=20=EA=B7=B8=EB=A3=B9=20=ED=8F=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit webhook 자기재배포 흐름의 마지막 게이트: - 컨테이너 안 nextjs(uid 1001) 가 호스트 docker.sock 사용하려면 운영 호스트의 docker 그룹 GID(988) 와 같은 GID 의 보조 그룹 가입 필요 - git 도 standalone 런타임에는 빠져 있어 git pull 단계가 'git: not found' 로 실패 apk add git docker-cli docker-cli-compose 추가 + dockerhost(988) 그룹 nextjs 가입. 이제 webhook → sh deploy.sh → git fetch + docker compose up --build 전체 가능. Co-Authored-By: Claude Opus 4.7 --- Dockerfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 49c4f97..1d4dccb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,9 +26,16 @@ ENV NEXT_TELEMETRY_DISABLED=1 ENV PORT=3000 ENV HOSTNAME=0.0.0.0 +# webhook 자기재배포에 필요한 CLI: git (소스 동기), docker + compose (이미지 빌드/swap) +# docker socket 은 docker-compose.prod.yml 에서 host 의 /var/run/docker.sock 으로 마운트됨 +RUN apk add --no-cache git docker-cli docker-cli-compose + # 비루트 사용자 (보안) RUN addgroup --system --gid 1001 nodejs && \ - adduser --system --uid 1001 nextjs + adduser --system --uid 1001 nextjs && \ + # docker socket 접근 권한: 운영 호스트 /var/run/docker.sock 의 GID(988) 와 동일한 그룹 생성 후 nextjs 가입 + addgroup -g 988 dockerhost && \ + addgroup nextjs dockerhost # standalone 번들 복사 COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./