1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
# Builds knotless-fork:<commit> on the build host (hat-8), from the fork at versions.env's commit, base images by digest,
# plus Dockerfile here (dumbpipe).
set -eu
cd "$(dirname "$0")/.."
. ./versions.env
tag=$(printf %.12s "$KNOTLESS_COMMIT")
ssh "${BUILD_HOST:-hat-8}" sh -s <<EOF
set -eu
d=\$HOME/knotless-fork-build
[ -d \$d/.git ] || git clone -q $KNOTLESS_REPO \$d
cd \$d && git fetch -q origin && git checkout -q --detach $KNOTLESS_COMMIT
docker buildx build --builder default --load \
--build-arg BUILDKIT_SYNTAX=$DOCKERFILE_SYNTAX \
--build-arg KNOTLESS_COMMIT=$KNOTLESS_COMMIT \
--build-context rust:1-bookworm=docker-image://$RUST_IMAGE \
--build-context golang:1.27.3-bookworm=docker-image://$GO_IMAGE \
--build-context node:24-bookworm-slim=docker-image://$NODE_IMAGE \
--build-context docker:28-cli=docker-image://$DOCKER_CLI_IMAGE \
-t knotless-fork-base:$tag .
EOF
ssh "${BUILD_HOST:-hat-8}" "docker buildx build --builder default --load --build-arg BASE=knotless-fork-base:$tag \
--build-arg RUST_IMAGE=$RUST_IMAGE -t knotless-fork:$tag - && docker image inspect -f '{{.Id}} {{.Size}}' knotless-fork:$tag" < Dockerfile