서비스 계정 생성 및 키 발급
먼저 해당 프로젝트의 서비스 계정을 생성해야한다.
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
복사