* 이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다.
GitHub Actions Workflow (.github/workflows/docker-build-push.yml)
name: Build and Push to Harbor
on:
push:
branches:
- main # main 브랜치에 push할 때 실행
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Configure Docker authentication
run: |
mkdir -p ~/.docker
echo '${{ secrets.DOCKER_CONFIG_JSON }}' > ~/.docker/config.json
chmod 600 ~/.docker/config.json
- name: Configure CA certificate
run: |
sudo mkdir -p /etc/docker/certs.d/${{ secrets.HARBOR_DOMAIN }}
echo '${{ secrets.HARBOR_CA_CERT }}' | sudo tee /etc/docker/certs.d/${{ secrets.HARBOR_DOMAIN }}/ca.crt
sudo systemctl restart docker
- name: Log in to Harbor
run: echo '${{ secrets.HARBOR_PASSWORD }}' | docker login ${{ secrets.HARBOR_DOMAIN }} -u ${{ secrets.HARBOR_USERNAME }} --password-stdin
- name: Build and push Docker image
run: |
IMAGE_NAME=${{ secrets.HARBOR_DOMAIN }}/my-project/my-image
TAG=$(date +%Y%m%d%H%M%S)
docker build -t $IMAGE_NAME:$TAG -t $IMAGE_NAME:latest .
docker push $IMAGE_NAME:$TAG
docker push $IMAGE_NAME:latest
728x90
댓글