mirror of
https://github.com/dokku/dokku.git
synced 2025-12-25 16:29:30 +01:00
We should treat the project.toml as an optional file, as is the Procfile. Additionally, moving the file into place early will ensure there is no chance of selecting the wrong file.
46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
trigger-builder-pack-builder-build() {
|
|
declare desc="builder-pack builder-build plugin trigger"
|
|
declare trigger="builder-build"
|
|
declare BUILDER_TYPE="$1" APP="$2" SOURCECODE_WORK_DIR="$3"
|
|
|
|
if [[ "$BUILDER_TYPE" != "pack" ]]; then
|
|
return
|
|
fi
|
|
|
|
local stack="$(plugn trigger buildpack-stack-name "$APP")"
|
|
if [[ -n "$stack" ]]; then
|
|
DOKKU_CNB_BUILDER="$stack"
|
|
fi
|
|
|
|
dokku_log_info1 "Building $APP from cnb stack $DOKKU_CNB_BUILDER (experimental)..."
|
|
|
|
if ! command -v "pack" &>/dev/null; then
|
|
dokku_log_fail "Missing pack, install it"
|
|
fi
|
|
|
|
local IMAGE=$(get_app_image_name "$APP")
|
|
|
|
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
|
|
|
|
local TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
|
|
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM
|
|
|
|
config_export app "$APP" --format envfile --merged >"$TMP_FILE"
|
|
|
|
plugn trigger pre-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
|
|
|
pack build "$IMAGE" --builder "$DOKKU_CNB_BUILDER" --path "$SOURCECODE_WORK_DIR" --default-process web
|
|
|
|
docker-image-labeler --label=com.dokku.image-stage=build --label=com.dokku.app-name=$APP --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=dokku "$IMAGE"
|
|
|
|
plugn trigger post-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
|
}
|
|
|
|
trigger-builder-pack-builder-build "$@"
|