name: Docker Image CI on: push: branches: - main jobs: build: runs-on: gitea-official-runner container: image: harbor.merlin.xin/testing/merlin/buildkit-node:v0.25.20 steps: - name: Checkout code uses: actions/checkout@v4 - name: see ls run: ls - name: start buildkit run: | mkdir -p /tmp/buildkit /usr/local/bin/buildkitd --root /tmp/buildkit --addr unix:///tmp/buildkit/buildkitd.sock & export BUILDKIT_HOST=unix:///tmp/buildkit/buildkitd.sock sleep 5 # 等待 buildkitd 启动 - name: Build and push Docker images env: HARBOR: ${{ vars.HARBOR }} TAG: ${{ github.sha }} run: | ROOT_DIR=$(pwd) # 遍历所有包含 Dockerfile 的目录 find . -type f -name "Dockerfile" | while read dockerfile; do dir=$(dirname "$dockerfile") name=$(basename "$dir") IMAGE_NAME="${HARBOR}/testing/merlin/${name}:${TAG}" /usr/local/bin/buildctl build \ --frontend dockerfile.v0 \ --local context="$dir" \ --local dockerfile="$dir" \ --output type=image,name="$IMAGE_NAME",push=true \ --addr $BUILDKIT_HOST done