72 lines
1.1 KiB
YAML
72 lines
1.1 KiB
YAML
name: Build Dockerfile with Remote BuildKit
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- main
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
# Must match runner labels exactly
|
|
|
|
runs-on: ["buildkit"]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
# Checkout the repo
|
|
|
|
- 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 image 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
|