3.3 Docker CD 아키텍처

3.3 Docker CD 아키텍처 An architecture diagram generated by Archify. gradle bootJar · JDK 21 · 네이티브 빌드 · GitHub-hosted: ubuntu · build-push 잡 gradle bootJar JDK 21 · 네이티브 빌드 buildx 이미지 빌드 · 멀티아키 amd64 · arm64 · GitHub-hosted: ubuntu · build-push 잡 buildx 이미지 빌드 멀티아키 amd64 · arm64 GHCR push · build-push 잡 마지막 단계 · GitHub-hosted: ubuntu · build-push 잡 GHCR push build-push 잡 마지막 단계 GHCR · 컨테이너 레지스트리 · Architecture component GHCR 컨테이너 레지스트리 GHCR 자격증명 설정 · 헬퍼 미사용 (config.json) · Self-hosted: 집 내부망 · deploy 잡 GHCR 자격증명 설정 헬퍼 미사용 (config.json) docker pull :tag · 새 이미지 수신 · Self-hosted: 집 내부망 · deploy 잡 docker pull :tag 새 이미지 수신 기존 컨테이너 stop/rm · 교체 준비 · Self-hosted: 집 내부망 · deploy 잡 기존 컨테이너 stop/rm 교체 준비 docker run -d · 새 컨테이너 기동 · Self-hosted: 집 내부망 · deploy 잡 docker run -d 새 컨테이너 기동 /actuator/health · 헬스체크 · Self-hosted: 집 내부망 · deploy 잡 /actuator/health 헬스체크 push pull GitHub-hosted: ubuntu · build-push 잡 Self-hosted: 집 내부망 · deploy 잡

핵심 원리

  • • GitHub가 집 안 머신을 찾는 게 아니라 러너가 GitHub로 아웃바운드 연결을 열고 일감을 polling
  • • 공유기 포트포워딩·고정 IP 불필요, 내부망 그대로 동작
  • • dev/prod는 서로 다른 물리 머신이라 둘 다 8080을 충돌 없이 사용