fix(tenant-manager): use readlink -f for absolute canonical paths

This commit is contained in:
2026-05-08 21:19:47 +02:00
parent 8d29f2d925
commit 5d44c15a4e
+22 -10
View File
@@ -175,21 +175,33 @@ EOF
restart_app_container() {
local env_file="$PWD/.docker-build.env"
# If HOST_WORKDIR is set, use it for absolute paths so docker daemon sees correct host paths
local work_base="${HOST_WORKDIR:-.}"
local compose_args=( -f "$work_base/docker-compose-multitenant.yml" )
local compose_args=()
# If HOST_WORKDIR is set (called from container), use absolute paths so docker daemon resolves them correctly
if [ -n "$HOST_WORKDIR" ]; then
compose_args+=( -f "$(readlink -f "$HOST_WORKDIR/docker-compose-multitenant.yml")" )
if [ -f "$HOST_WORKDIR/.docker-compose.runtime.override.yml" ]; then
compose_args+=( -f "$(readlink -f "$HOST_WORKDIR/.docker-compose.runtime.override.yml")" )
fi
if [ -f "$HOST_WORKDIR/.docker-build.env" ]; then
compose_args+=( --env-file "$(readlink -f "$HOST_WORKDIR/.docker-build.env")" )
fi
else
# Normal case: called directly from host
compose_args+=( -f "$PWD/docker-compose-multitenant.yml" )
if [ -f "$PWD/.docker-compose.runtime.override.yml" ]; then
compose_args+=( -f "$PWD/.docker-compose.runtime.override.yml" )
fi
if [ -f "$env_file" ]; then
compose_args+=( --env-file "$env_file" )
fi
fi
# Pass along COMPOSE_PROJECT_NAME if set so the internal docker-compose sees it
if [ -n "$COMPOSE_PROJECT_NAME" ]; then
compose_args=( -p "$COMPOSE_PROJECT_NAME" "${compose_args[@]}" )
fi
if [ -f "$work_base/.docker-compose.runtime.override.yml" ]; then
compose_args+=( -f "$work_base/.docker-compose.runtime.override.yml" )
fi
if [ -f "$env_file" ]; then
compose_args+=( --env-file "$env_file" )
fi
echo "Restarting app container to apply tenant configuration changes..."
docker compose "${compose_args[@]}" up -d --no-build --force-recreate app
}