Git을 통한 컨테이너에 이미지 업로드
Container Registry
비공개
hands-on
태그 덮어쓰기 = 가능
이미지 스캔 = 자동
1
예제 프로젝트 포크 하기
아래 예제 Repo를 개인 깃허브 환경으로 Fork합니다
https://github.com/kakaoenterprise/kic-library-monolithic
2
Action 파일 작성하기
github-action 실행에 사용할 Secret 정보를 작성
Repo 관리 페이지 > Settings 탭
Security > Secrets and variables > Actions
시크릿 정보 추가
프로젝트
kakao-infraeng-dev-pz
레파지토리 이름
hands-on
Fork된 Repo 페이지에 접속하여 main 브랜치에 github-action 설정 파일을 작성합니다.
Repo 루트 경로에서 .github/workflows/action.yaml 파일을 생성하고 아래 내용을 복사해 붙여 넣습니다.
name: KakaoCloud-handson
run-name: KakaoCloud handson workflow
on: [push]
jobs:
deploy-image:
runs-on: ubuntu-latest
steps:
- name: Set up Qemu
uses: docker/setup-qemu-action@v2
- name: Login KakaoCloud
uses: docker/login-action@v2
with:
registry: ${{ secrets.PROJECT_NAME }}.kr-central-1.kcr.dev
username: ${{ secrets.ACCESS_KEY }}
password: ${{ secrets.ACCESS_SECRET_KEY }}
- name: Set ENV
run: echo "TIME=$(date "+%Y-%m-%d-%H-%M")" >> $GITHUB_ENV
- name: Build and Push
uses: docker/build-push-action@v4
with:
push: true
tags: ${{ secrets.PROJECT_NAME }}.kr-central-1.kcr.dev/${{ secrets.REPOSITORY_NAME }}/kep-library:${{ env.TIME }}
Repo에 push 이벤트가 발생하면...
qemu 세팅
카카오클라우드 비공개 컨테이너 레지스트라에 인증 진행
현재 시간을 태그 변수로 설정
프로젝트의 도커 파일을 통해 빌디하고 이미지를 컨테이너 레지스트리에 배포됨.
3
# 결과 확인
Repo에 Push 이벤트를 발생시키고 결과를 확인합니다
카카오클라우드 콘솔 > Container Registry 메뉴에서 이미지가 업로드되었는지 확인
4
참고 사이트
https://docs.kakaocloud.com/tutorial/dev-ops/gitops/git-image-upload
https://brunch.co.kr/@topasvga/3651
감사합니다.