fix: support pack-based images that do not have a Procfile

If no Procfile is set, we'll leave the entrypoint alone, resulting in the default launcher for the web process (or whatever pack decided was default) executing.

Closes #5753
This commit is contained in:
Jose Diaz-Gonzalez
2023-03-20 02:58:36 -04:00
parent 756f8f26b8
commit 03da8462f7
2 changed files with 18 additions and 4 deletions

View File

@@ -5,16 +5,23 @@ set -eo pipefail
trigger-builder-pack-docker-args-process-deploy() {
declare desc="builder-pack core-post-deploy plugin trigger"
declare trigger="docker-args-process-deploy"
declare APP="$1" IMAGE_SOURCE_TYPE="$2"
declare APP="$1" IMAGE_SOURCE_TYPE="$2" IMAGE_TAG="$3" PROC_TYPE="$4"
local STDIN=$(cat)
local output
local inject_launcher output
if [[ "$IMAGE_SOURCE_TYPE" != "pack" ]]; then
return
fi
# without this, the command and arguments are passed as args to the default process type
output="--entrypoint launcher "
inject_launcher=true
if [[ -n "$IMAGE_TAG" ]] && [[ -n "$PROC_TYPE" ]] && [[ -z "$(plugn trigger procfile-get-command "$APP" "$PROC_TYPE" "5000" 2>/dev/null || echo '')" ]]; then
inject_launcher=false
fi
if [[ "$inject_launcher" == "true" ]]; then
# without this, the command and arguments are passed as args to the default process type
output="--entrypoint launcher "
fi
echo -n "$STDIN$output"
}