본문 바로가기
카테고리 없음

github action sample

by Knowledge Store In Hyunsoft 2025. 2. 12.
* 이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다.

 

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

댓글