name: Build Dockerfile with Remote BuildKit on: push: branches: - main jobs: build: runs-on: ["buildkit"] # must match runner labels steps: # Install basic dependencies for Node.js - name: Install Node.js dependencies run: | apt-get update apt-get install -y curl gnupg ca-certificates curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs # Checkout the repository - name: Checkout repository uses: actions/checkout@v4 # Install buildctl if not already installed - name: Install buildctl run: | if ! command -v buildctl &> /dev/null; then echo "Installing buildctl..." wget -qO- https://github.com/moby/buildkit/releases/download/v0.12.5/buildkit-v0.12.5.linux-amd64.tar.gz \ | tar -xz -C /usr/local/bin --strip-components=1 bin/buildctl fi # Build and push Dockerfile using remote BuildKit - name: Build and Push Dockerfile run: | buildctl \ --addr tcp://buildkit.default.svc.cluster.local:1234 \ build \ --frontend dockerfile.v0 \ --local context=. \ --local dockerfile=. \ --output type=image,name=registry/myapp:latest,push=true