Files
dokku/plugins/builder-dockerfile/core-post-extract
Jose Diaz-Gonzalez eb17a383c6 fix: reference SOURCECODE_WORK_DIR in builder core-post-extract
The builder-dockerfile, builder-lambda, builder-nixpacks, builder-pack and builder-railpack `core-post-extract` triggers assigned `$2` to a local `SOURCECODE_WORK_DIR` but called `pushd "$TMP_WORK_DIR"`, which was unset. Bash 5.2 silently accepted `pushd ""`, so the bug stayed dormant. Bash 5.3 (shipped with Ubuntu 26.04) makes it a hard error and `set -e` aborts the trigger, causing every `git push` to fail with `pushd: null directory`.
2026-05-07 12:39:46 -04:00

33 lines
894 B
Bash
Executable File

#!/usr/bin/env bash
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_AVAILABLE_PATH/builder-dockerfile/internal-functions"
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
trigger-builder-dockerfile-core-post-extract() {
declare desc="builder-dockerfile post-extract plugin trigger"
declare trigger="post-extract"
declare APP="$1" SOURCECODE_WORK_DIR="$2"
local NEW_DOCKERFILE="$(fn-builder-dockerfile-computed-dockerfile-path "$APP")"
pushd "$SOURCECODE_WORK_DIR" >/dev/null
if [[ -z "$NEW_DOCKERFILE" ]]; then
return
fi
if [[ "$NEW_DOCKERFILE" == "Dockerfile" ]]; then
return
fi
if [[ ! -f "$NEW_DOCKERFILE" ]]; then
dokku_log_fail "Invalid dockerfile-path specified: $NEW_DOCKERFILE"
return 1
fi
mv "$NEW_DOCKERFILE" Dockerfile
popd &>/dev/null || pushd "/tmp" >/dev/null
}
trigger-builder-dockerfile-core-post-extract "$@"