pile·
인프라 / DevOps·카카오 엔터테인먼트 FE카카오 엔터테인먼트 FE·

GitHub Actions에서 도커 캐시를 적용해 이미지 빌드하기

GitHub Actions CI 환경에서는 로컬과 달리 도커 레이어 캐시가 기본적으로 동작하지 않는다는 점에서 출발해, 캐시를 활성화해 이미지 빌드 시간을 단축하는 방법을 Express 앱 예제와 함께 단계별로 설명한다. 카카오웹툰 배포 전환 과정에서 발견한 실전 경험이 담겨 있다.

핵심 포인트 - 핵심 발견: GitHub Actions는 매 워크플로우 실행 시 새로운 러너를 사용하므로 도커 레이어 캐시가 인스턴스 간 공유되지 않아 빌드 시간 절감 효과 없음 - 도커 레이어 캐시 기본 원리: Dockerfile의 각 명령어(RUN, ADD, COPY)가 레이어를 생성하고, 변경되지 않은 레이어는 재사용해 빌드 속도 향상 - RUN 명령어 최적화: 여러 apt-get 명령을 &&로 연결해 레이어 수와 이미지 크기 동시 절감 - 캐시 활용의 핵심: package.json과 package-lock.json을 소스 코드보다 먼저 COPY하고 npm install을 실행해야 의존성 레이어가 캐시되어 소스 변경 시에도 재설치 생략 가능 - GitHub Actions 캐시 전략: docker/build-push-action의 cache-from/cache-to 옵션 또는 GitHub Actions 캐시 레지스트리(ghcr.io)를 활용해 워크플로우 간 레이어 공유 - .dockerignore 활용: node_modules, npm-debug.log 등 불필요한 파일을 빌드 컨텍스트에서 제외해 COPY 시간 단축

상세 정리 - 도커 이미지는 Dockerfile 명령어 순서대로 레이어를 쌓으며, 특정 레이어가 변경되면 그 이후 모든 레이어가 무효화됨 - COPY . . 를 npm install보다 앞에 두면 소스 파일 변경 시 npm install도 항상 재실행 — 잘못된 레이어 순서 - 올바른 Dockerfile 순서: (1) package*.json 복사 → (2) npm install → (3) 소스 파일 전체 복사 → (4) EXPOSE/CMD - GitHub Actions에서 캐시 저장소로 ECR을 활용하면 ECR 데이터 전송 비용 발생 가능. GitHub Container Registry(GHCR)는 public 레포 무료 - buildx + cache-type=gha 조합: GitHub Actions 내장 캐시 스토리지를 도커 레이어 캐시로 직접 활용하는 방식 - 카카오웹툰 배포 전환 맥락: Elastic Beanstalk에서 ECR+ECS 방식으로 전환, 초기 캐시 미적용 시 배포마다 전체 빌드 반복 - 멀티스테이지 빌드 병행 시 각 스테이지별 캐시 전략이 필요해 복잡도 증가

왜 읽나: CI 환경에서 도커 레이어 캐시가 왜 동작하지 않는지 이해하고, Dockerfile 레이어 순서 최적화부터 GitHub Actions 캐시 설정까지 빌드 속도 개선 전략을 실습 예제와 함께 익힐 수 있다.

카카오 엔터테인먼트 FE
카카오 엔터테인먼트 FE 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    엔터프라이즈 보안 요구사항을 충족하는 프라이빗 Amazon Bedrock AgentCore 구축하기

    Amazon Bedrock AgentCore의 VPC egress 기능(2026년 4월 추가)을 활용해 온프레미스 LLM·사내 IdP·사내 MCP 서버에 인터넷 노출 없이 연결하는 방법을 다룬다. 규제 산업 엔터프라이즈가 기존 사내 자산을 그대로 유지하면서 Bedrock AgentCore를 안전하게 구축하기 위한 구성 가이드다.

    요약 이어보기
    #mcp#amazon-bedrock#vpc+2
  2. 인프라 / DevOps·gitlab-engGitLab Blog·

    OpenTofu와 Argo CD로 구성하는 GitLab 기반 AWS 제어 플레인

    GitLab을 단일 제어 플레인으로 삼아 OpenTofu로 AWS 인프라를 프로비저닝하고, Argo CD로 GitOps 기반 애플리케이션 배포까지 자동화하는 엔드투엔드 튜토리얼이다. VPC·EKS 클러스터 구성부터 Helm 기반 툴 설치, 샘플 앱 배포까지 모든 과정이 GitLab CI/CD 파이프라인으로 연결된다.

    요약 이어보기
    #kubernetes#aws-eks#gitops+2
  3. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    Amazon Bedrock 기반 사내 LLM, 키 발급부터 비용 차단까지: F&F의 LiteLLM 게이트웨이 운영 사례

    패션 기업 F&F가 Amazon Bedrock과 LiteLLM 프록시를 결합해 구축한 사내 LLM 플랫폼 운영 사례다. API 키 셀프서비스 발급, 모델별 접근 승인 워크플로, 사용자·프로젝트별 예산 자동 차단까지 전 과정을 직접 구현한 아키텍처 결정과 운영 교훈을 공유한다.

    요약 이어보기
    #kubernetes#amazon-bedrock#litellm+2