This commit is contained in:
Stephan Schnabel 2025-06-06 21:53:23 +02:00
parent ea2a997724
commit f9eff77790
Signed by: stephan.schnabel
SSH key fingerprint: SHA256:99zuzxNGFb5/5P+E/O7ONU2qhUojUe/D8rIPTW+9Xp0
16 changed files with 707 additions and 0 deletions

53
entrypoint.sh Executable file
View file

@ -0,0 +1,53 @@
#!/bin/bash
set -eu;
##
## check input
##
BUILDCTL_ADDR=${PLUGIN_ADDR:-${BUILDCTL_ADDR:-}}
if [[ -z "${BUILDCTL_ADDR:-}" ]]; then
echo "Missing buildkit addr."
exit 1
fi
BUILDCTL_CONTEXT=${PLUGIN_CONTEXT:-$(pwd)}
BUILDCTL_DOCKERFILE=$(dirname ${PLUGIN_DOCKERFILE:-$BUILDCTL_CONTEXT/Dockerfile})
if [[ ! -f $BUILDCTL_DOCKERFILE/Dockerfile ]]; then
echo "Dockerfile $BUILDCTL_DOCKERFILE/Dockerfile not found!"
exit 1
fi
BUILDCTL_FRONTEND=${PLUGIN_FRONTEND:-dockerfile.v0}
if [[ "$BUILDCTL_FRONTEND" != "dockerfile.v0" ]]; then
echo "Only frontend 'dockerfile.v0' testet and supported yet."
exit 1
fi
##
## build command
##
COMMAND="buildctl"
COMMAND="$COMMAND --addr $BUILDCTL_ADDR"
COMMAND="$COMMAND build"
COMMAND="$COMMAND --frontend $BUILDCTL_FRONTEND"
COMMAND="$COMMAND --local context='$BUILDCTL_CONTEXT'"
COMMAND="$COMMAND --local dockerfile='$BUILDCTL_DOCKERFILE'"
if [[ "${PLUGIN_PLATFORM:-}" == "true" ]]; then
COMMAND="$COMMAND --opt platform='$PLUGIN_PLATFORM'"
fi
# https://github.com/moby/buildkit/blob/master/README.md#output
if [[ ! -z "${PLUGIN_NAME:-}" ]]; then
COMMAND="$COMMAND --output type=image,name=$PLUGIN_NAME,push=${PLUGIN_PUSH:-true}"
fi
# custom args, e.g. docker run --rm --volume=$(pwd):$(pwd) --workdir=$(pwd) --env=CI=test kokuwaio/buildkit --opt buildarg=foo=bar
if [[ -n "${1:-}" ]]; then
COMMAND="$COMMAND $*"
fi
##
## execute command
##
echo -e "${COMMAND// --/\\n --}\n"
eval "$COMMAND"