diff --git a/plugins/scheduler-docker-local/scheduler-run b/plugins/scheduler-docker-local/scheduler-run index b6c41510a..781f45372 100755 --- a/plugins/scheduler-docker-local/scheduler-run +++ b/plugins/scheduler-docker-local/scheduler-run @@ -109,7 +109,8 @@ trigger-scheduler-docker-local-scheduler-run() { if [[ -n "$PROC_CMD" ]]; then dokku_log_info1_quiet "Found '$POTENTIAL_PROCFILE_KEY' in Procfile, running that command" DOCKER_ARGS+=" --label=com.dokku.process-type=$POTENTIAL_PROCFILE_KEY" - set -- "$PROC_CMD" "${@:2}" + read -ra proc_array <<<"$PROC_CMD" + set -- "${proc_array[@]}" "${@:2}" fi fi diff --git a/tests/apps/python/exec-entrypoint.sh b/tests/apps/python/exec-entrypoint.sh new file mode 100755 index 000000000..7efc2e17d --- /dev/null +++ b/tests/apps/python/exec-entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -o pipefail + +exec "$@" diff --git a/tests/apps/python/exec.Dockerfile b/tests/apps/python/exec.Dockerfile new file mode 100644 index 000000000..c45a63d20 --- /dev/null +++ b/tests/apps/python/exec.Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.12.6-bookworm + +EXPOSE 3001/udp +EXPOSE 3000/tcp +EXPOSE 3003 + +COPY . /app + +WORKDIR /app + +ENTRYPOINT ["/app/exec-entrypoint.sh"] diff --git a/tests/apps/python/exec.Procfile b/tests/apps/python/exec.Procfile new file mode 100644 index 000000000..69af14128 --- /dev/null +++ b/tests/apps/python/exec.Procfile @@ -0,0 +1 @@ +task: echo 'hi dokku' diff --git a/tests/unit/builder-dockerfile.bats b/tests/unit/builder-dockerfile.bats index 569f6a914..5a5b0f3db 100644 --- a/tests/unit/builder-dockerfile.bats +++ b/tests/unit/builder-dockerfile.bats @@ -51,6 +51,35 @@ teardown() { assert_output_contains 'echo hi' 0 } +@test "(builder-dockerfile) exec" { + run /bin/bash -c "dokku builder-dockerfile:set $TEST_APP dockerfile-path exec.Dockerfile" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku app-json:set $TEST_APP appjson-path app.json-fake" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku ps:set $TEST_APP procfile-path exec.Procfile" + echo "output: $output" + echo "status: $status" + assert_success + + run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku run $TEST_APP task" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "Found 'task' in Procfile, running that command" + assert_output_contains 'hi dokku' +} + @test "(builder-dockerfile) config export" { run /bin/bash -c "dokku config:set $TEST_APP GITHUB_TOKEN=custom-value" echo "output: $output"