Skip to content

[CHORE] CD에서 EC2 빌드 제거하고 GHCR 이미지 pull 방식으로 전환 - #453

Merged
onuyyy merged 1 commit into
devfrom
fix/cd-ghcr-image-deploy
Jun 17, 2026
Merged

[CHORE] CD에서 EC2 빌드 제거하고 GHCR 이미지 pull 방식으로 전환#453
onuyyy merged 1 commit into
devfrom
fix/cd-ghcr-image-deploy

Conversation

@onuyyy

@onuyyy onuyyy commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

PR 요약

빈약한 EC2(1.9GB)에서 매 배포마다 Gradle 멀티스테이지 빌드를 돌려 swap 쓰래싱으로
CD가 5분→20분까지 느려지던 문제를, 빌드를 GitHub 러너로 옮기고 EC2는 GHCR 이미지를
pull 해서 띄우기만 하도록 전환했습니다.

  • 기타 (CI/CD 설정 변경 — 빌드 파이프라인 구조 개선)

이슈 번호

  • 없음

주요 변경 사항

  • .github/workflows/dev_cd.yml, prod_cd.yml: ubuntu-latest 러너에서 이미지 빌드 →
    ghcr.io/fc-de/dokdok-server:{dev,prod} push (GITHUB_TOKEN, GHA 캐시로 의존성 레이어 캐싱).
    EC2 SSH 스텝은 docker compose pull + up -d로 교체(--build 제거). command_timeout 30m→10m.
  • compose.yaml: app 서비스 build:image: ghcr.io/fc-de/dokdok-server:${SPRING_PROFILE:-dev}
    (dev/prod 동일 compose, 프로필로 태그 분기).

참고 사항

  • 운영 선행조건(완료): GHCR 패키지가 private 이라 EC2에서 최초 1회 docker login ghcr.io
    (read:packages PAT) 필요 → 이미 적용함(Login Succeeded). dev/prod 동일 호스트라 1회로 커버.
  • 머지 시 동작: 러너가 이미지 빌드·push → EC2가 pull·재기동(빌드 없음). 첫 배포에서 GHCR에
    이미지가 생성됨.
  • 검증: 머지 후 build-and-push 잡 성공 + EC2 docker compose ps로 app 기동, docker images
    ghcr.io/...:dev 확인.

빈약한 EC2(1.9GB)에서 매 배포마다 Gradle 멀티스테이지 빌드를 돌려
swap 쓰래싱으로 CD가 5분→20분으로 느려지던 문제 해결.

- dev_cd.yml/prod_cd.yml: ubuntu-latest 러너에서 이미지 빌드 →
  ghcr.io/fc-de/dokdok-server:{dev,prod} push (GITHUB_TOKEN, GHA 캐시).
  EC2는 docker compose pull + up -d 만 (--build 제거).
- compose.yaml: app 서비스 build → image:${SPRING_PROFILE} 로 전환.

운영: GHCR private 패키지라 EC2 최초 1회 docker login 필요(적용 완료).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@onuyyy onuyyy added the type:chore 설정/환경 label Jun 17, 2026
@onuyyy
onuyyy merged commit bb1c79d into dev Jun 17, 2026
2 checks passed
@onuyyy
onuyyy deleted the fix/cd-ghcr-image-deploy branch June 17, 2026 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:chore 설정/환경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant