Merge pull request #2012 from dokku/mh-minor-bug-fixes
minor bug fixes around app.json and docker-options
This commit is contained in:
@@ -23,21 +23,24 @@ get_phase_script() {
|
||||
execute_script() {
|
||||
declare desc="executes appropriate phase script key from app.json"
|
||||
local APP="$1"; local IMAGE="$2"; local PHASE_SCRIPT_KEY="$3"
|
||||
local SCRIPT_CMD=$(get_phase_script "$IMAGE" "$PHASE_SCRIPT_KEY")
|
||||
local SCRIPT_CMD=$(get_phase_script "$IMAGE" "$PHASE_SCRIPT_KEY" 2>/dev/null)
|
||||
if [[ -n "$SCRIPT_CMD" ]];then
|
||||
dokku_log_info1 "Running '$SCRIPT_CMD' in app container"
|
||||
local COMMAND="cd /app ; "
|
||||
local COMMAND="export HOME=/app ; "
|
||||
local COMMAND+=" cd \$HOME ; "
|
||||
local COMMAND+=" for file in /app/.profile.d/*; do source \$file; done ; "
|
||||
local COMMAND+=" echo restoring installation cache... ; "
|
||||
local COMMAND+=" cp -rfp /cache /tmp/ || true ; "
|
||||
local COMMAND+=" $SCRIPT_CMD ; "
|
||||
local COMMAND+=" rm -rf /tmp/cache || true ; "
|
||||
local COMMAND+=" ln -sf /cache /tmp/cache || true ; "
|
||||
local COMMAND+=" $SCRIPT_CMD ; RC=\$? ;"
|
||||
local COMMAND+=" echo removing installation cache... ; "
|
||||
local COMMAND+=" rm -rf /tmp/cache || true "
|
||||
local COMMAND+=" rm -f /tmp/cache || true ; "
|
||||
local COMMAND+=" exit \$RC "
|
||||
local DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP")
|
||||
local CACHE_DIR="$DOKKU_ROOT/$APP/cache"
|
||||
# shellcheck disable=SC2086
|
||||
local id=$(docker run "$DOKKU_GLOBAL_RUN_ARGS" --label=dokku_phase_script="${PHASE_SCRIPT_KEY}" -d -v "$CACHE_DIR:/cache" $DOCKER_ARGS "$IMAGE" /bin/bash -c "$COMMAND")
|
||||
test "$(docker wait "$id")" -eq 0
|
||||
test "$(docker wait "$id")" -eq 0 || (dokku_container_log_verbose_quiet "$id"; exit 1)
|
||||
dokku_container_log_verbose_quiet "$id"
|
||||
if [[ "$PHASE_SCRIPT_KEY" != "postdeploy" ]];then
|
||||
docker commit "$id" "$IMAGE" > /dev/null
|
||||
|
||||
@@ -15,9 +15,9 @@ config_docker_args() {
|
||||
config_export global | sed -e "s:^export ::g" -e "s:=':=:g" -e "s:'$::g" > "$DOCKERFILE_ENV_FILE"
|
||||
config_export app "$APP" | sed -e "s:^export ::g" -e "s:=':=:g" -e "s:'$::g" >> "$DOCKERFILE_ENV_FILE"
|
||||
|
||||
echo "$STDIN --env-file=$DOCKERFILE_ENV_FILE"
|
||||
echo -n "$STDIN --env-file=$DOCKERFILE_ENV_FILE"
|
||||
else
|
||||
echo "$STDIN"
|
||||
echo -n "$STDIN"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ docker_args() {
|
||||
done < "$PHASE_FILE_PATH"
|
||||
fi
|
||||
|
||||
echo "$STDIN$output"
|
||||
echo -n "$STDIN$output"
|
||||
}
|
||||
|
||||
docker_args "$@"
|
||||
|
||||
@@ -148,6 +148,12 @@ teardown() {
|
||||
echo "status: "$status
|
||||
assert_success
|
||||
deploy_app
|
||||
|
||||
CID=$(< $DOKKU_ROOT/$TEST_APP/CONTAINER.web.1)
|
||||
run /bin/bash -c "docker inspect -f '{{ .Config.Volumes }}' $CID"
|
||||
echo "output: "$output
|
||||
echo "status: "$status
|
||||
assert_output "map[/tmp:{} /var/tmp:{}]"
|
||||
}
|
||||
|
||||
@test "(docker-options) docker-options:add (all phases over SSH)" {
|
||||
|
||||
Reference in New Issue
Block a user