본인의 프로젝트가 Github 에 올라와 있어야 합니다.
1. 작업할 Github repository Settings 으로 진입하여 Secrets 로 탭을 눌러줍니다.
2. New repository secret 버튼을 눌러줍니다.
3. 2개의 secret 를 만들어야 합니다. 아래의 secret name을 참고하여 Name 을 기입하고, Value 에는 DockerHub ID와 비밀번호를 기입하여줍니다.
4. {GithubRepositoryName}/.github/workflows/docker-publish.yml 생성
name: Docker
on:
push:
branches:
- master
tags:
- v*
# master 로 푸시된 모든 것을 대상으로 실행하며, Docker 에서는 latest 로 관리될 것입니다.
env:
IMAGE_NAME: #본인의 repository name 을 적으세요
jobs:
# 푸시 및 빌드 전 테스트
# 참고 : https://docs.docker.com/docker-hub/builds/automated-testing/
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
if [ -f docker-compose.test.yml ]; then
docker-compose --file docker-compose.test.yml build
docker-compose --file docker-compose.test.yml run sut
else
docker build . --file Dockerfile
fi
# docker-compose 인지 Dockerfile 인지 확인하여 build 를 진행합니다.
# 다만, 아래 build: 에서 steps: 에 있는 Buildx step 에서 이 행위는 중복됩니다.
# 즉, 본인의 C# Project Code Test 를 진행토록 해주세요.
build:
# Ensure test job passes before pushing image.
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: DockerHub Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v2
with:
push: true
tags: (DockerHub ID)/(DockerHub repository name):latest
본인의 프로젝트 환경에 맞게 조금씩 변형해 주는것을 권장드립니다.
여기까지 하셨다면....
Actions 에서 모든 flow 가 잘 되었는지 확인하고, DockerHub repository 에 가서 본인의 프로젝트가 잘 업데이트가 되어 있는지 확인해 줍니다.
잘 되었습니다.
반응형