push docker image to GCR using github action

서비스 계정 생성 및 키 발급

먼저 해당 프로젝트의 서비스 계정을 생성해야한다.
1.
GCP 대시보드에 접속하여 해당 프로젝트 내 IAM 및 관리자 > 서비스 계정으로 들어간다.
2.
왼쪽 상단의 + 서비스 계정 만들기 를 클릭
3.
서비스 계정 세부정보를 등록하고 엑세스 권한 부여 시
저장소 개체 관리자(Storage Object Admin)
저장소 관리자(Storage Admin),
Container Registry 서비스 에이전트,
+ ) Computer Engine 서비스 에이전트
위 엑세스 권한을 부여한다.
4.
서비스 계정 생성 완료 후 해당 계정을 선택해 세부 정보로 들어간다.
5.
키 탭으로 들어가 키 추가 클릭. 새 키 만들기 > json 생성
6.
발급 받은 json파일을 인코딩하는 작업이 필요.
python3 -m base64 -e < example.json
Python
복사
7.
해당 문자를 Github Secret에 등록한다.

Github Action 추가하기

아래 push-to-gcr-github-action을 사용하여 진행함. 세부 옵션은 아래 링크 참조
1.
set up a workflow yourself 클릭
2.
yml 파일 만들기
해당 부분은 예시이니 알맞게 고쳐 사용하세요
name: Github Action on: push: branches: [ stage ] jobs: build-and-push-to-gcr: runs-on: ubuntu-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout uses: actions/checkout@v2 # Setup gcloud CLI - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@v0.3.0 - name: Use gcloud CLI run: gcloud info # Configure docker to use the gcloud command-line tool as a credential helper - run: | # Set up docker to authenticate # via gcloud command-line tool. gcloud auth configure-docker - uses: RafikFarhad/push-to-gcr-github-action@v4 with: gcloud_service_key: ${{ secrets.GCP_SA_KEY }} # 아까 발급받은 키 값 가져오기 registry: gcr.io project_id: ${{ secrets.GCP_PROJECT_ID }} # GCP 프로젝트 이름 image_name: ${{ secrets.IMAGE }} # 생성할 이미지 이름 image_tag: latest,${{ github.sha }} # 태그
Python
복사