#!/usr/local/bin/bash set -exu; env | sort | grep -v DRONE ## ## check input ## BUILDKIT_HOST=${PLUGIN_ADDR:-${BUILDKIT_HOST:-}} if [[ -z "${BUILDKIT_HOST:-}" ]]; 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 SOURCE_DATE_EPOCH=${PLUGIN_SOURCE_DATE_EPOCH:-${SOURCE_DATE_EPOCH:-0}} ## ## build command ## COMMAND="buildctl" COMMAND="$COMMAND --addr $BUILDKIT_HOST" 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_NAMES:-}" ]]; then COMMAND="$COMMAND --output type=image,name=$PLUGIN_NAMES,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"