fix: add launcher entrypoint for CNB images on dokku run and cron:run

The scheduler-run script classified CNB-based images as `herokuish` because
`is_image_herokuish_based` returns true for them, which caused the
`docker-args-process-run` trigger for builder-pack to skip injecting
`--entrypoint launcher`. Without that flag the container fell back to the
image entrypoint (`/cnb/process/web`) and dropped the user-supplied
arguments. Mirror the deploy-side detection so CNB images set
`IMAGE_SOURCE_TYPE=pack`, allowing the launcher entrypoint to be added.
This commit is contained in:
Jose Diaz-Gonzalez
2026-04-29 04:39:02 -04:00
parent 9b6c32f39c
commit effa9d37cf
3 changed files with 68 additions and 2 deletions

View File

@@ -73,6 +73,7 @@ trigger-scheduler-docker-local-scheduler-run() {
local DYNO_NUMBER="$RANDOM"
local IMAGE_SOURCE_TYPE="dockerfile"
is_image_herokuish_based "$IMAGE" "$APP" && IMAGE_SOURCE_TYPE="herokuish"
is_image_cnb_based "$IMAGE" && IMAGE_SOURCE_TYPE="pack"
DOCKER_ARGS+=$(: | plugn trigger docker-args-process-run "$APP" "$IMAGE_SOURCE_TYPE" "$IMAGE_TAG")
DOCKER_ARGS+=" -e DYNO=$PROCESS_TYPE.$DYNO_NUMBER --name $APP.$PROCESS_TYPE.$DYNO_NUMBER"
@@ -96,8 +97,8 @@ trigger-scheduler-docker-local-scheduler-run() {
done
fi
[[ "$IMAGE_SOURCE_TYPE" == "herokuish" ]] && local EXEC_CMD="/exec"
is_image_cnb_based "$IMAGE" && EXEC_CMD=""
local EXEC_CMD=""
[[ "$IMAGE_SOURCE_TYPE" == "herokuish" ]] && EXEC_CMD="/exec"
if [[ "$1" == "--" ]]; then
shift