56 lines
1.5 KiB
Bash
Executable file
56 lines
1.5 KiB
Bash
Executable file
#!/usr/local/bin/bash
|
|
set -exu;
|
|
env | sort | grep -v DRONE
|
|
|
|
##
|
|
## check input
|
|
##
|
|
|
|
BUILDKIT_HOST=${PLUGIN_ADDR:-${BUILDKIT_HOST:-}}
|
|
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
|
|
|
|
SOURCE_DATE_EPOCH=${PLUGIN_SOURCE_DATE_EPOCH:-${SOURCE_DATE_EPOCH:-0}}
|
|
|
|
##
|
|
## 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_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"
|