
Google Cloud Platform

저는 Build 단계를 두가지 Stage로 나누었습니다.
React 애플리케이션은 빌드 시 HTML, JavaScript, CSS 등 정적 파일을 생성합니다.
하지만, 일반적인 빌드 결과물에는 빌드 도구나 개발 의존성(예: node_modules, 소스 코드 전체)이 함께 포함될 수 있습니다.
Stage 1에서는 이러한 불필요한 잔여물들을 제거하고, 오직 정적 파일만을 포함하는 최종 산출물을 생성하는 과정입니다.
Stage 1에서 생성한 정적 파일만을 가져와서, 경량 이미지(5MB)인 alpine으로 복사하였습니다.
가벼운 Image로 이미지 크기를 줄이고, 정적 파일만을 가져와 서비스를 해주는 웹서버 image를 만들 수 있습니다.
- name: Docker 이미지 빌드 및 푸시
uses: docker/build-push-action@v3
with:
context: .
file: uniro_frontend/Dockerfile
push: true
tags: gcr.io/${{ env.GCP_PROJECT_ID }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max