반응형
GitAction을 이용하여 Docker image를 Docker hub에 push해보자
# 도커 계정 생성과 관련한 부분은 생략하도록 한다.
1. 작성된 Dockerfile을 이용해 이미지를 빌드할 수 있게 workflow 작성
Actions 탭에 New workflow 또는 Create workflow 를 클릭하면 여러 예시들을 확인할 수 있다.
예시들을 참고로 작성한 workflow
파일 형식: YAML
name: Publish Docker image
on:
release:
types: [published]
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: useranme/user_repo
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
yaml 문서로 작성법에 관한 설명은 레퍼런스를 통해 확인할 수 있다.
아이디와 비밀번호 같은 민감한 정보를 YAML 코드에 입력해서 commit을 하면 더 이상 그 정보는 쓸 수 없기 때문에 환경변수(DOCKER_NAME, DOCKER_PASSWORD) 를 이용하여 관리할 수 있다.
- Github에서는 이러한 환경변수를 안전하게 보관할 수 있는 기능을 제공한다.
- Settings -> Secrets
작성을 완료하고 GitAction을 실행하려고하면 작동하지 않는 것을 확인할 수 있다.
이유는 위 코드의 published가 release 활동이 발생할때 워크플로를 실행하기 때문이다.
다시 레포로 돌아가 오른쪽 사이드바의 Relase > Create a new release를 눌러 새로운 release를 발행한다.
- 첫 생성이므로 tag는 v1.0.0으로 하고 title과 notes는 자유롭게 입력한다.
이제 진짜 모든 작성이 완료됐다면 초록불이 반기고 있을 것이다!
반응형
'DevOps > Git' 카테고리의 다른 글
GitHub Action 이용해 Docker image build - 트러블 슈팅 (0) | 2023.01.12 |
---|---|
GitHub Action을 이용한 빌드 및 테스트 자동화 (2) | 2023.01.12 |