Docker GitHub Builder로 빌드하기
Docker GitHub Builder로 빌드하기 (Build with Docker GitHub Builder)
Docker가 관리하는 build.yml 재사용 워크플로는 Dockerfile로부터 빌드하고, 많은 저장소가 손으로 연결하던 핵심 작업들을 패키징해요. 이 페이지에서는 워크플로 호출 방법, 멀티플랫폼 이미지 게시 방법, 로컬 빌드 산출물 내보내기 방법을 다뤄요.
출처: 문서
본문
이미지 빌드·push (Build and push an image)
다음 워크플로는 저장소 Dockerfile로부터 빌드하고, 브랜치·태그 이벤트에서 push하며, 메타데이터 입력으로 태그를 생성해요:
name: ci
on:
push:
branches:
- "main"
tags:
- "v*"
pull_request:
permissions:
contents: read
jobs:
build:
uses: docker/github-builder/.github/workflows/build.yml@v1
permissions:
contents: read # to fetch the repository content
id-token: write # for signing attestation(s) with GitHub OIDC Token
with:
output: image
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64
meta-images: name/app
meta-tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
secrets:
registry-auths: |
- registry: docker.io
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
platforms로 대상 플랫폼을 지정하면 멀티플랫폼 매니페스트가 조립돼요. push로 push 여부를 결정하고, PR 이벤트에서는 push하지 않도록 할 수 있어요.
로컬 산출물 내보내기 (Exporting local artifacts)
output을 로컬로 설정하면 저장소마다 job 구조를 다시 만들 필요 없이 빌드 산출물을 로컬 디렉터리로 내보낼 수 있어요.