Merge pull request #2012 from dokku/mh-minor-bug-fixes

minor bug fixes around app.json and docker-options
This commit is contained in:
Michael Hobbs
2016-03-22 06:50:56 -07:00
4 changed files with 18 additions and 9 deletions

View File

@@ -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

View File

@@ -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
}

View File

@@ -72,7 +72,7 @@ docker_args() {
done < "$PHASE_FILE_PATH"
fi
echo "$STDIN$output"
echo -n "$STDIN$output"
}
docker_args "$@"

View File

@@ -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)" {