Skip to content

Instantly share code, notes, and snippets.

@mbreit
Created January 20, 2018 19:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbreit/6b205344a526f02b7136ff8d335dd14d to your computer and use it in GitHub Desktop.
Save mbreit/6b205344a526f02b7136ff8d335dd14d to your computer and use it in GitHub Desktop.
dokku trace output
vagrant@ubuntu-xenial:~/test$ git push dokku master
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:H/YoMz0KniRTO+LvuIhaFtfjcevU96KWGDj41IUzaQA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
+ export DOKKU_DISTRO
++ . /etc/os-release
++ echo ubuntu
+ DOKKU_DISTRO=ubuntu
+ export DOKKU_IMAGE=gliderlabs/herokuish
+ DOKKU_IMAGE=gliderlabs/herokuish
+ export DOKKU_LIB_ROOT=/var/lib/dokku
+ DOKKU_LIB_ROOT=/var/lib/dokku
+ export PLUGIN_PATH=/var/lib/dokku/plugins
+ PLUGIN_PATH=/var/lib/dokku/plugins
+ export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ export DOKKU_API_VERSION=1
+ DOKKU_API_VERSION=1
+ export DOKKU_NOT_IMPLEMENTED_EXIT=10
+ DOKKU_NOT_IMPLEMENTED_EXIT=10
+ export DOKKU_VALID_EXIT=0
+ DOKKU_VALID_EXIT=0
+ export DOKKU_LOGS_DIR=/var/log/dokku
+ DOKKU_LOGS_DIR=/var/log/dokku
+ export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ export DOKKU_CONTAINER_LABEL=dokku
+ DOKKU_CONTAINER_LABEL=dokku
+ export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
+ parse_args git-receive-pack ''\''testapp'\'''
+ declare 'desc=top-level cli arg parser'
+ local next_index=1
+ local skip=false
+ args=("$@")
+ local args
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=2
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=3
+ return 0
+ args=("$@")
+ skip_arg=false
+ [[ git-receive-pack =~ ^--.* ]]
+ has_tty
+ declare 'desc=return 0 if we have a tty'
++ /usr/bin/tty
++ true
+ [[ not a tty == \n\o\t\ \a\ \t\t\y ]]
+ return 1
+ DOKKU_QUIET_OUTPUT=1
++ id -un
+ [[ dokku != \d\o\k\k\u ]]
+ [[ git-receive-pack =~ ^plugin:.* ]]
+ [[ git-receive-pack == \s\s\h\-\k\e\y\s\:\a\d\d ]]
+ [[ -n git-receive-pack 'testapp' ]]
+ export -n SSH_ORIGINAL_COMMAND
+ [[ git-receive-pack =~ config-* ]]
+ [[ git-receive-pack =~ docker-options* ]]
+ set -f
+ /usr/bin/dokku git-receive-pack ''\''testapp'\'''
+ export DOKKU_DISTRO
++ . /etc/os-release
++ echo ubuntu
+ DOKKU_DISTRO=ubuntu
+ export DOKKU_IMAGE=gliderlabs/herokuish
+ DOKKU_IMAGE=gliderlabs/herokuish
+ export DOKKU_LIB_ROOT=/var/lib/dokku
+ DOKKU_LIB_ROOT=/var/lib/dokku
+ export PLUGIN_PATH=/var/lib/dokku/plugins
+ PLUGIN_PATH=/var/lib/dokku/plugins
+ export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ export DOKKU_API_VERSION=1
+ DOKKU_API_VERSION=1
+ export DOKKU_NOT_IMPLEMENTED_EXIT=10
+ DOKKU_NOT_IMPLEMENTED_EXIT=10
+ export DOKKU_VALID_EXIT=0
+ DOKKU_VALID_EXIT=0
+ export DOKKU_LOGS_DIR=/var/log/dokku
+ DOKKU_LOGS_DIR=/var/log/dokku
+ export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ export DOKKU_CONTAINER_LABEL=dokku
+ DOKKU_CONTAINER_LABEL=dokku
+ export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
+ parse_args git-receive-pack ''\''testapp'\'''
+ declare 'desc=top-level cli arg parser'
+ local next_index=1
+ local skip=false
+ args=("$@")
+ local args
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=2
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=3
+ return 0
+ args=("$@")
+ skip_arg=false
+ [[ git-receive-pack =~ ^--.* ]]
+ has_tty
+ declare 'desc=return 0 if we have a tty'
++ /usr/bin/tty
++ true
+ [[ not a tty == \n\o\t\ \a\ \t\t\y ]]
+ return 1
+ DOKKU_QUIET_OUTPUT=1
++ id -un
+ [[ dokku != \d\o\k\k\u ]]
+ [[ git-receive-pack =~ ^plugin:.* ]]
+ [[ git-receive-pack == \s\s\h\-\k\e\y\s\:\a\d\d ]]
+ [[ -n '' ]]
+ dokku_auth git-receive-pack ''\''testapp'\'''
+ declare 'desc=calls user-auth plugin trigger'
+ export SSH_USER=dokku
+ SSH_USER=dokku
+ export SSH_NAME=ubuntu
+ SSH_NAME=ubuntu
+ plugn trigger user-auth dokku ubuntu git-receive-pack ''\''testapp'\'''
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
+ [[ ! -n '' ]]
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
+ [[ git-receive-pack =~ (ssh-keys:add|ssh-keys:remove) ]]
+ return 0
+ case "$1" in
+ execute_dokku_cmd git-receive-pack ''\''testapp'\'''
+ declare 'desc=executes dokku sub-commands'
+ local PLUGIN_NAME=git-receive-pack
+ local PLUGIN_CMD=git-receive-pack
+ local implemented=0
+ local script
+ argv=("$@")
+ local argv
+ case "$PLUGIN_NAME" in
++ readlink -f /var/lib/dokku/plugins/enabled/git-receive-pack
+ [[ /var/lib/dokku/plugins/enabled/git-receive-pack == *core-plugins* ]]
+ [[ -x /var/lib/dokku/plugins/enabled/git-receive-pack/subcommands/default ]]
+ [[ -x /var/lib/dokku/plugins/enabled/git-receive-pack/subcommands/git-receive-pack ]]
+ [[ -x /var/lib/dokku/plugins/enabled/git-receive-pack/subcommands/git-receive-pack ]]
+ [[ 0 -eq 0 ]]
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/00_dokku-standard/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/20_events/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/apps/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/certs/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/checks/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/config/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/docker-options/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/domains/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/enter/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/git/commands git-receive-pack ''\''testapp'\'''
+ source /var/lib/dokku/plugins/available/git/functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
++ source /var/lib/dokku/core-plugins/available/common/functions
+++ set -eo pipefail
+++ [[ -n 1 ]]
+++ set -x
++ source /var/lib/dokku/plugins/available/apps/functions
+++ set -eo pipefail
+++ [[ -n 1 ]]
+++ set -x
+++ source /var/lib/dokku/core-plugins/available/common/functions
++++ set -eo pipefail
++++ [[ -n 1 ]]
++++ set -x
+++ source /var/lib/dokku/plugins/available/config/functions
++++ set -eo pipefail
++++ [[ -n 1 ]]
++++ set -x
++++ source /var/lib/dokku/core-plugins/available/common/functions
+++++ set -eo pipefail
+++++ [[ -n 1 ]]
+++++ set -x
++ source /var/lib/dokku/plugins/available/config/functions
+++ set -eo pipefail
+++ [[ -n 1 ]]
+++ set -x
+++ source /var/lib/dokku/core-plugins/available/common/functions
++++ set -eo pipefail
++++ [[ -n 1 ]]
++++ set -x
+ case "$1" in
+ git_glob_cmd git-receive-pack ''\''testapp'\'''
+ declare 'desc=catch-all for any other git-* commands'
+ local 'cmd=git-*'
++ echo ''\''testapp'\'''
++ sed 's/\\'\''/'\''/g'
++ sed 's/^\///g'
++ perl -pe 's/(?<!\\)'\''//g'
+ local APP=testapp
+ local APP_PATH=/home/dokku/testapp
+ is_valid_app_name testapp
+ declare 'desc=verify app name format'
+ local APP=testapp
+ [[ ! -n testapp ]]
+ [[ ! testapp =~ ^[a-z].* ]]
+ return 0
+ [[ git-receive-pack == \g\i\t\-\r\e\c\e\i\v\e\-\p\a\c\k ]]
+ [[ ! -d /home/dokku/testapp/refs ]]
+ git init --bare /home/dokku/testapp
+ local PRERECEIVE_HOOK=/home/dokku/testapp/hooks/pre-receive
+ cat
+ chmod +x /home/dokku/testapp/hooks/pre-receive
+ [[ git-receive-pack == \g\i\t\-\r\e\c\e\i\v\e\-\p\a\c\k ]]
+ local 'args=git-receive-pack '\''/home/dokku/testapp'\'''
+ git-shell -c 'git-receive-pack '\''/home/dokku/testapp'\'''
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 252 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote: + export DOKKU_DISTRO
remote: ++ . /etc/os-release
remote: ++ echo ubuntu
remote: + DOKKU_DISTRO=ubuntu
remote: + export DOKKU_IMAGE=gliderlabs/herokuish
remote: + DOKKU_IMAGE=gliderlabs/herokuish
remote: + export DOKKU_LIB_ROOT=/var/lib/dokku
remote: + DOKKU_LIB_ROOT=/var/lib/dokku
remote: + export PLUGIN_PATH=/var/lib/dokku/plugins
remote: + PLUGIN_PATH=/var/lib/dokku/plugins
remote: + export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
remote: + PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
remote: + export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
remote: + PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
remote: + export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
remote: + PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
remote: + export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
remote: + PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
remote: + export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
remote: + PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
remote: + export DOKKU_API_VERSION=1
remote: + DOKKU_API_VERSION=1
remote: + export DOKKU_NOT_IMPLEMENTED_EXIT=10
remote: + DOKKU_NOT_IMPLEMENTED_EXIT=10
remote: + export DOKKU_VALID_EXIT=0
remote: + DOKKU_VALID_EXIT=0
remote: + export DOKKU_LOGS_DIR=/var/log/dokku
remote: + DOKKU_LOGS_DIR=/var/log/dokku
remote: + export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
remote: + DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
remote: + export DOKKU_CONTAINER_LABEL=dokku
remote: + DOKKU_CONTAINER_LABEL=dokku
remote: + export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
remote: + DOKKU_GLOBAL_RUN_ARGS=--label=dokku
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + parse_args git-hook testapp
remote: + declare 'desc=top-level cli arg parser'
remote: + local next_index=1
remote: + local skip=false
remote: + args=("$@")
remote: + local args
remote: + for arg in '"$@"'
remote: + [[ false == \t\r\u\e ]]
remote: + case "$arg" in
remote: + next_index=2
remote: + for arg in '"$@"'
remote: + [[ false == \t\r\u\e ]]
remote: + case "$arg" in
remote: + next_index=3
remote: + return 0
remote: + args=("$@")
remote: + skip_arg=false
remote: + [[ git-hook =~ ^--.* ]]
remote: + has_tty
remote: + declare 'desc=return 0 if we have a tty'
remote: ++ /usr/bin/tty
remote: ++ true
remote: + [[ not a tty == \n\o\t\ \a\ \t\t\y ]]
remote: + return 1
remote: + DOKKU_QUIET_OUTPUT=1
remote: ++ id -un
remote: + [[ dokku != \d\o\k\k\u ]]
remote: + [[ git-hook =~ ^plugin:.* ]]
remote: + [[ git-hook == \s\s\h\-\k\e\y\s\:\a\d\d ]]
remote: + [[ -n '' ]]
remote: + dokku_auth git-hook testapp
remote: + declare 'desc=calls user-auth plugin trigger'
remote: + export SSH_USER=dokku
remote: + SSH_USER=dokku
remote: + export SSH_NAME=ubuntu
remote: + SSH_NAME=ubuntu
remote: + plugn trigger user-auth dokku ubuntu git-hook testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ git-hook =~ (ssh-keys:add|ssh-keys:remove) ]]
remote: + return 0
remote: + case "$1" in
remote: + execute_dokku_cmd git-hook testapp
remote: + declare 'desc=executes dokku sub-commands'
remote: + local PLUGIN_NAME=git-hook
remote: + local PLUGIN_CMD=git-hook
remote: + local implemented=0
remote: + local script
remote: + argv=("$@")
remote: + local argv
remote: + case "$PLUGIN_NAME" in
remote: ++ readlink -f /var/lib/dokku/plugins/enabled/git-hook
remote: + [[ /var/lib/dokku/plugins/enabled/git-hook == *core-plugins* ]]
remote: + [[ -x /var/lib/dokku/plugins/enabled/git-hook/subcommands/default ]]
remote: + [[ -x /var/lib/dokku/plugins/enabled/git-hook/subcommands/git-hook ]]
remote: + [[ -x /var/lib/dokku/plugins/enabled/git-hook/subcommands/git-hook ]]
remote: + [[ 0 -eq 0 ]]
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/00_dokku-standard/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/20_events/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/apps/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/certs/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/checks/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/config/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/docker-options/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/domains/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/enter/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/git/commands git-hook testapp
remote: + source /var/lib/dokku/plugins/available/git/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/apps/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + case "$1" in
remote: + git_hook_cmd git-hook testapp
remote: + declare 'desc=kick off receive-app trigger from git prereceive hook'
remote: + local cmd=git-hook
remote: + local APP=testapp
remote: + local DOKKU_DEPLOY_BRANCH
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: ++ git_deploy_branch testapp
remote: ++ declare 'desc=retrieve the deploy branch for a given application'
remote: ++ local cmd=git-hook
remote: ++ local APP=testapp
remote: +++ config_get testapp DOKKU_DEPLOY_BRANCH
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DEPLOY_BRANCH
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DEPLOY_BRANCH
remote: +++ true
remote: ++ local DOKKU_DEPLOY_BRANCH=
remote: +++ config_get --global DOKKU_DEPLOY_BRANCH
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get --global DOKKU_DEPLOY_BRANCH
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get --global DOKKU_DEPLOY_BRANCH
remote: +++ true
remote: ++ local DOKKU_GLOBAL_DEPLOY_BRANCH=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ echo master
remote: + DOKKU_DEPLOY_BRANCH=master
remote: + git check-ref-format --branch master
remote: + local oldrev newrev refname
remote: + read -r oldrev newrev refname
remote: + [[ refs/heads/master = \r\e\f\s\/\h\e\a\d\s\/\m\a\s\t\e\r ]]
remote: + plugn trigger receive-app testapp c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/git/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/apps/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + git_receive_app testapp c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + declare 'desc=git receive-app plugin trigger'
remote: + local trigger=git_receive_app
remote: + local APP=testapp
remote: + local REV=c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + [[ ! -d /home/dokku/testapp/refs ]]
remote: + acquire_app_deploy_lock testapp exclusive
remote: + declare 'desc=acquire advisory lock for use in git/tar deploys'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local LOCK_TYPE=exclusive
remote: + local APP_DEPLOY_LOCK_FD=200
remote: + local APP_DEPLOY_LOCK_FILE=/home/dokku/testapp/.deploy.lock
remote: + local 'LOCK_WAITING_MSG=testapp is currently being deployed. Waiting...'
remote: + local 'LOCK_FAILED_MSG=testapp is currently being deployed. Exiting...'
remote: + local SHOW_MSG=true
remote: + eval 'exec 200>/home/dokku/testapp/.deploy.lock'
remote: ++ exec
remote: + [[ exclusive == \w\a\i\t\i\n\g ]]
remote: + flock -n 200
remote: + git_build testapp c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + declare 'desc=setup and call git_build_app_repo'
remote: + local APP=testapp
remote: + local DOKKU_DEPLOY_BRANCH REF
remote: + [[ 2 -ge 2 ]]
remote: + local REF=c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + git_build_app_repo testapp c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + declare 'desc=builds local git app repo for app'
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP=testapp
remote: + local REV=c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: ++ mktemp -d /tmp/dokku_git.XXXX
remote: + local GIT_BUILD_APP_REPO_TMP_WORK_DIR=/tmp/dokku_git.wAC3
remote: + trap 'rm -rf "$GIT_BUILD_APP_REPO_TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT
remote: + local TMP_TAG=dokku/c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + chmod 755 /tmp/dokku_git.wAC3
remote: + unset GIT_DIR GIT_WORK_TREE
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + use_git_worktree
remote: + declare 'desc=detects whether to use git worktree'
remote: + local GIT_VERSION MAJOR_VERSION MINOR_VERSION
remote: ++ git --version
remote: ++ awk '{split($0,a," "); print a[3]}'
remote: + GIT_VERSION=2.7.4
remote: ++ echo 2.7.4
remote: ++ awk '{split($0,a,"."); print a[1]}'
remote: + MAJOR_VERSION=2
remote: ++ echo 2.7.4
remote: ++ awk '{split($0,a,"."); print a[2]}'
remote: + MINOR_VERSION=7
remote: + [[ 2 -ge 3 ]]
remote: + [[ 2 -eq 2 ]]
remote: + [[ 7 -ge 11 ]]
remote: + return 1
remote: + pushd /tmp/dokku_git.wAC3
remote: + GIT_DIR=/home/dokku/testapp
remote: + git tag -d dokku/c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + true
remote: + GIT_DIR=/home/dokku/testapp
remote: + git tag dokku/c6d37a2131b2a0e2258a731974e643a78f8e1f05 c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + git init
remote: + git config advice.detachedHead false
remote: + git remote add origin /home/dokku/testapp
remote: + git fetch --depth=1 origin refs/tags/dokku/c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + git reset --hard FETCH_HEAD
remote: + GIT_DIR=/home/dokku/testapp
remote: + git tag -d dokku/c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + suppress_output git submodule update --init --recursive
remote: + declare 'desc=suppress all output from a given command unless there is an error'
remote: + local TMP_COMMAND_OUTPUT
remote: ++ mktemp /tmp/suppress_output.XXXX
remote: + TMP_COMMAND_OUTPUT=/tmp/suppress_output.jgZq
remote: + trap 'rm -rf "$TMP_COMMAND_OUTPUT" > /dev/null' RETURN INT TERM EXIT
remote: + git submodule update --init --recursive
remote: + return 0
remote: ++ rm -rf /tmp/suppress_output.jgZq
remote: + find . -name .git -prune -exec rm -rf '{}' ';'
remote: + plugn trigger post-extract testapp /tmp/dokku_git.wAC3 c6d37a2131b2a0e2258a731974e643a78f8e1f05
/'
remote: + [[ -f Dockerfile ]]
remote: + plugn trigger pre-receive-app testapp herokuish /tmp/dokku_git.wAC3 c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + dokku_receive testapp herokuish /tmp/dokku_git.wAC3
remote: + declare 'desc=receives an app kicks off deploy process'
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
/'
remote: + local APP=testapp
remote: ++ get_app_image_name testapp
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local IMAGE_SOURCE_TYPE=herokuish
remote: + local TMP_WORK_DIR=/tmp/dokku_git.wAC3
remote: ++ config_get testapp DOKKU_SKIP_CLEANUP
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_SKIP_CLEANUP
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_SKIP_CLEANUP
remote: ++ true
remote: + local DOKKU_SKIP_CLEANUP=
remote: + docker_cleanup testapp
remote: + declare 'desc=cleans up all exited/dead containers and removes all dangling images'
remote: + declare APP=testapp FORCE_CLEANUP=
remote: + local DOKKU_APP_SKIP_CLEANUP
remote: + [[ '' != \t\r\u\e ]]
remote: + [[ -z testapp ]]
remote: + [[ -n '' ]]
remote: + [[ -n '' ]]
remote: + dokku_log_info1 'Cleaning up...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Cleaning up...'
-----> Cleaning up...
remote: ++ docker ps -a -f status=exited -f label=dokku -q
remote: + docker rm
remote: + true
remote: ++ docker ps -a -f status=dead -f label=dokku -q
remote: + docker rm
remote: + true
remote: + dokku_log_info1 'Building testapp from herokuish...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Building testapp from herokuish...'
remote: + config_set --no-restart testapp DOKKU_APP_TYPE=herokuish
-----> Building testapp from herokuish...
remote: ++ docker images -f dangling=true -q
remote: + docker rmi
remote: + dokku_build testapp herokuish /tmp/dokku_git.wAC3
remote: + declare 'desc=build phase'
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + local APP=testapp
remote: + local IMAGE_SOURCE_TYPE=herokuish
remote: + local TMP_WORK_DIR=/tmp/dokku_git.wAC3
remote: ++ get_app_image_name testapp
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local cid
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local DOKKU_APP_CACHE_DIR=/home/dokku/testapp/cache
remote: ++ config_export app testapp
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export testapp
remote: ++ return 0
remote: + eval 'export DOKKU_APP_TYPE='\''herokuish'\'''
remote: ++ export DOKKU_APP_TYPE=herokuish
remote: ++ DOKKU_APP_TYPE=herokuish
remote: + pushd /tmp/dokku_git.wAC3
remote: + case "$IMAGE_SOURCE_TYPE" in
remote: ++ config_get testapp DOKKU_IMAGE
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_IMAGE
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_IMAGE
remote: ++ echo gliderlabs/herokuish
remote: + DOKKU_IMAGE=gliderlabs/herokuish
remote: ++ tar -c .
remote: ++ docker run --label=dokku -i -a stdin gliderlabs/herokuish /bin/bash -c 'mkdir -p /app && tar -xC /app'
remote: + cid=49bd87c9cdea18b47986c14d345d7bfead897e32c723f363b4e6daa75a138d15
remote: ++ docker wait 49bd87c9cdea18b47986c14d345d7bfead897e32c723f363b4e6daa75a138d15
remote: + test 0 -eq 0
remote: + docker commit 49bd87c9cdea18b47986c14d345d7bfead897e32c723f363b4e6daa75a138d15 dokku/testapp:latest
remote: + [[ -d /home/dokku/testapp/cache ]]
remote: + mkdir -p /home/dokku/testapp/cache
remote: + plugn trigger pre-build-buildpack testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + build_env_pre_build_buildpack testapp
remote: + declare 'desc=build-env pre-build-buildpack plugin trigger'
remote: + local trigger=build_env_pre_build_buildpack
remote: + local APP=testapp
remote: + local IMAGE id
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: ++ get_app_image_name testapp
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ config_get --global CURL_CONNECT_TIMEOUT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get --global CURL_CONNECT_TIMEOUT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get --global CURL_CONNECT_TIMEOUT
remote: + [[ -z '' ]]
remote: + config_set --global CURL_CONNECT_TIMEOUT=90
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --global CURL_CONNECT_TIMEOUT=90
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --global CURL_CONNECT_TIMEOUT=90
-----> Setting config vars
CURL_CONNECT_TIMEOUT: 90
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config '' set CURL_CONNECT_TIMEOUT
remote: + local app=
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku//monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains ''
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name ''
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=
remote: ++ is_valid_app_name ''
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=
remote: ++ [[ ! -n '' ]]
remote: ++ dokku_log_fail 'APP must not be null'
remote: ++ declare 'desc=log fail formatter'
remote: ++ echo 'APP must not be null'
remote: APP must not be null
remote: ++ exit 1
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get '' DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get '' DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get '' DOKKU_NGINX_PORT
remote: FAILED: Please specify an app or --global
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local port=
remote: + is_ssl_enabled ''
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=
remote: + verify_app_name ''
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=
remote: + is_valid_app_name ''
remote: + declare 'desc=verify app name format'
remote: + local APP=
remote: + [[ ! -n '' ]]
remote: + dokku_log_fail 'APP must not be null'
remote: + declare 'desc=log fail formatter'
remote: + echo 'APP must not be null'
remote: APP must not be null
remote: + exit 1
remote: ! Failure while triggering post-config-update: exit status 1
remote: ++ config_get --global CURL_TIMEOUT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get --global CURL_TIMEOUT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get --global CURL_TIMEOUT
remote: + [[ -z '' ]]
remote: + config_set --global CURL_TIMEOUT=60
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --global CURL_TIMEOUT=60
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --global CURL_TIMEOUT=60
-----> Setting config vars
CURL_TIMEOUT: 60
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config '' set CURL_TIMEOUT
remote: + local app=
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku//monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains ''
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name ''
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=
remote: ++ is_valid_app_name ''
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=
remote: ++ [[ ! -n '' ]]
remote: ++ dokku_log_fail 'APP must not be null'
remote: ++ declare 'desc=log fail formatter'
remote: ++ echo 'APP must not be null'
remote: APP must not be null
remote: ++ exit 1
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get '' DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get '' DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get '' DOKKU_NGINX_PORT
remote: FAILED: Please specify an app or --global
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local port=
remote: + is_ssl_enabled ''
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=
remote: + verify_app_name ''
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=
remote: + is_valid_app_name ''
remote: + declare 'desc=verify app name format'
remote: + local APP=
remote: + [[ ! -n '' ]]
remote: + dokku_log_fail 'APP must not be null'
remote: + declare 'desc=log fail formatter'
remote: + echo 'APP must not be null'
remote: APP must not be null
remote: + exit 1
remote: ! Failure while triggering post-config-update: exit status 1
remote: + dokku_log_info1 'Adding BUILD_ENV to build environment...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Adding BUILD_ENV to build environment...'
-----> Adding BUILD_ENV to build environment...
remote: ++ config_bundle --merged testapp
remote: ++ declare 'desc=export tar bundle of config'
remote: ++ docker run --label=dokku -i -a stdin dokku/testapp:latest /bin/bash -c 'mkdir -p /tmp/env; cat | tar -x -C /tmp/env'
remote: ++ config_sub bundle --merged testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=bundle
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/bundle config:bundle --merged testapp
remote: + id=9694a6f81e9aa02fdb327faa978cc770a71a6c7cd49fd73d3a7edd69823e7a60
remote: ++ docker wait 9694a6f81e9aa02fdb327faa978cc770a71a6c7cd49fd73d3a7edd69823e7a60
remote: + test 0 -eq 0
remote: + docker commit 9694a6f81e9aa02fdb327faa978cc770a71a6c7cd49fd73d3a7edd69823e7a60 dokku/testapp:latest
remote: ++ config_export app testapp --format envfile --merged
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export --format envfile --merged testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export --format envfile --merged testapp
remote: ++ docker run --label=dokku -i -a stdin dokku/testapp:latest /bin/bash -c 'cat >> /app/.env'
remote: ++ return 0
remote: + id=2b65dc3491117bafecf6d57a78927c9047021bb659cfa5b27c18577cb007be95
remote: ++ docker wait 2b65dc3491117bafecf6d57a78927c9047021bb659cfa5b27c18577cb007be95
remote: + test 0 -eq 0
remote: + docker commit 2b65dc3491117bafecf6d57a78927c9047021bb659cfa5b27c18577cb007be95 dokku/testapp:latest
remote: ++ :
remote: ++ plugn trigger docker-args-build testapp herokuish
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + app_user_docker_args testapp herokuish
remote: + local APP=testapp
remote: + local STDIN
remote: + local DOKKU_APP_TYPE
remote: + local DOKKU_APP_USER
remote: ++ cat
remote: + STDIN=
remote: ++ config_get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_TYPE
remote: + DOKKU_APP_TYPE=herokuish
remote: ++ config_get testapp DOKKU_APP_USER
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_USER
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_USER
remote: ++ true
remote: + DOKKU_APP_USER=
remote: + DOKKU_APP_USER=herokuishuser
remote: + [[ herokuish == \h\e\r\o\k\u\i\s\h ]]
remote: + local 'docker_args= --env=USER=herokuishuser'
remote: + echo -n ' --env=USER=herokuishuser'
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + docker_args testapp herokuish
remote: + declare 'desc=docker args plugin trigger'
remote: + local trigger=/var/lib/dokku/plugins/enabled/docker-options/docker-args-build
remote: ++ cat
remote: + local STDIN=
remote: + local APP=testapp
remote: + local IMAGE_SOURCE_TYPE=herokuish
remote: + case "$0" in
remote: + local PHASE=BUILD
remote: + local FILE_PREFIX=DOCKER_OPTIONS_
remote: + local PHASE_FILE_PATH=/home/dokku/testapp/DOCKER_OPTIONS_BUILD
remote: + local output=
remote: + [[ -f /home/dokku/testapp/DOCKER_OPTIONS_BUILD ]]
remote: + echo -n ''
remote: + local 'DOCKER_ARGS= --env=USER=herokuishuser'
remote: + [[ -n 1 ]]
remote: + DOCKER_ARGS+=' -e TRACE=true '
remote: + declare -a ARG_ARRAY
remote: + eval 'ARG_ARRAY=( --env=USER=herokuishuser -e TRACE=true )'
remote: ++ ARG_ARRAY=(--env=USER=herokuishuser -e TRACE=true)
remote: ++ docker run --label=dokku -d -v /home/dokku/testapp/cache:/cache -e CACHE_PATH=/cache --env=USER=herokuishuser -e TRACE=true dokku/testapp:latest /build
remote: + cid=d6e58b70f7f998450103768d7c9b1a1f73546c3f8cd08e37dab9e5dfb57beeaa
remote: + docker attach d6e58b70f7f998450103768d7c9b1a1f73546c3f8cd08e37dab9e5dfb57beeaa
remote: + [[ -d /tmp/app ]]
remote: + cmd-export paths
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=paths as=paths
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ ++ grep -v :
remote: for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ sort
remote: + CMDS["$ns:${as/#$ns-/}"]=paths
remote: + cmd-export version
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=version as=version
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ sort
remote: ++ grep -v :
remote: + CMDS["$ns:${as/#$ns-/}"]=version
remote: + cmd-export herokuish-test test
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=herokuish-test as=test
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ ++ grep -v :
remote: for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ sort
remote: + CMDS["$ns:${as/#$ns-/}"]=herokuish-test
remote: + cmd-export-ns buildpack 'Use and install buildpacks'
remote: + declare ns=buildpack 'desc=Use and install buildpacks'
remote: + eval 'buildpack() {
remote: declare desc="Use and install buildpacks"
remote: cmd-ns buildpack "$@";
remote: }'
remote: + cmd-export buildpack
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=buildpack as=buildpack
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ sort
remote: ++ grep -v :
remote: + CMDS["$ns:${as/#$ns-/}"]=buildpack
remote: + CMDS["$1"]=buildpack
remote: + cmd-export buildpack-build
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=buildpack-build as=buildpack-build
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo buildpack-build
remote: + ns=buildpack
remote: + CMDS["$ns:${as/#$ns-/}"]=buildpack-build
remote: + cmd-export buildpack-install
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=buildpack-install as=buildpack-install
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ grep -v :
remote: ++ sort
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo buildpack-install
remote: + ns=buildpack
remote: + CMDS["$ns:${as/#$ns-/}"]=buildpack-install
remote: + cmd-export buildpack-list
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=buildpack-list as=buildpack-list
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo buildpack-list
remote: + ns=buildpack
remote: + CMDS["$ns:${as/#$ns-/}"]=buildpack-list
remote: + cmd-export buildpack-test
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=buildpack-test as=buildpack-test
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ ++ grep -v :
remote: for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: ++ sort
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo buildpack-test
remote: + ns=buildpack
remote: + CMDS["$ns:${as/#$ns-/}"]=buildpack-test
remote: + cmd-export-ns slug 'Manage application slugs'
remote: + declare ns=slug 'desc=Manage application slugs'
remote: + eval 'slug() {
remote: declare desc="Manage application slugs"
remote: cmd-ns slug "$@";
remote: }'
remote: + cmd-export slug
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=slug as=slug
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + echo slug
remote: + grep '^buildpack-'
remote: + CMDS["$ns:${as/#$ns-/}"]=slug
remote: + CMDS["$1"]=slug
remote: + cmd-export slug-import
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=slug-import as=slug-import
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo slug-import
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo slug-import
remote: + ns=slug
remote: + CMDS["$ns:${as/#$ns-/}"]=slug-import
remote: + cmd-export slug-generate
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=slug-generate as=slug-generate
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + + grep echo slug-generate
remote: '^buildpack-'
remote: + for n in '$(cmd-list-ns)'
remote: + echo slug-generate
remote: + grep '^slug-'
remote: + ns=slug
remote: + CMDS["$ns:${as/#$ns-/}"]=slug-generate
remote: + cmd-export slug-export
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=slug-export as=slug-export
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:generate
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo slug-export
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo slug-export
remote: + ns=slug
remote: + CMDS["$ns:${as/#$ns-/}"]=slug-export
remote: + cmd-export-ns procfile 'Use Procfiles and run app commands'
remote: + declare ns=procfile 'desc=Use Procfiles and run app commands'
remote: + eval 'procfile() {
remote: declare desc="Use Procfiles and run app commands"
remote: cmd-ns procfile "$@";
remote: }'
remote: + cmd-export procfile
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=procfile as=procfile
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:generate
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:export
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo procfile
remote: + CMDS["$ns:${as/#$ns-/}"]=procfile
remote: + CMDS["$1"]=procfile
remote: + cmd-export procfile-start
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=procfile-start as=procfile-start
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :procfile
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:generate
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:export
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo procfile-start
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^procfile-'
remote: + echo procfile-start
remote: + ns=procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo procfile-start
remote: + CMDS["$ns:${as/#$ns-/}"]=procfile-start
remote: + cmd-export procfile-exec
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=procfile-exec as=procfile-exec
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :procfile
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile:start
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:generate
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:export
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo procfile-exec
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^procfile-'
remote: + echo procfile-exec
remote: + ns=procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo procfile-exec
remote: + CMDS["$ns:${as/#$ns-/}"]=procfile-exec
remote: + cmd-export procfile-parse
remote: + declare 'desc=Exports a function as a command'
remote: + declare fn=procfile-parse as=procfile-parse
remote: + local ns=
remote: ++ cmd-list-ns
remote: ++ sort
remote: ++ grep -v :
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :version
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :help
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :procfile
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:install
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile:start
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:test
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:generate
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :paths
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo :slug
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:import
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:list
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo slug:export
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo buildpack:build
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile:exec
remote: ++ for k in '"${!CMDS[@]}"'
remote: ++ echo procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^buildpack-'
remote: + echo procfile-parse
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^procfile-'
remote: + echo procfile-parse
remote: + ns=procfile
remote: + for n in '$(cmd-list-ns)'
remote: + grep '^slug-'
remote: + echo procfile-parse
remote: + CMDS["$ns:${as/#$ns-/}"]=procfile-parse
remote: + case "$SELF" in
remote: + buildpack-build
remote: + declare 'desc=Build an application using installed buildpacks'
remote: + ensure-paths
remote: + mkdir -p /app /tmp/env /tmp/build /cache /tmp/buildpacks
remote: + [[ -n herokuishuser ]]
remote: + buildpack-setup
remote: + export APP_DIR=/app
remote: + APP_DIR=/app
remote: + export HOME=/app
remote: + HOME=/app
remote: + export REQUEST_ID=build-22299
remote: + REQUEST_ID=build-22299
remote: + export STACK=cedar-14
remote: + STACK=cedar-14
remote: + cp -r /app/. /tmp/build
remote: + usermod --home /app herokuishuser
remote: + chown -R herokuishuser:herokuishuser /app /tmp/build /cache /tmp/env /tmp/buildpacks
remote: + export CURL_CONNECT_TIMEOUT=30
remote: + CURL_CONNECT_TIMEOUT=30
remote: + export CURL_TIMEOUT=180
remote: + CURL_TIMEOUT=180
remote: + [[ -f /app/.env ]]
remote: ++ _envfile-parse
remote: ++ cat /app/.env
remote: ++ declare 'desc=Parse input into shell export commands'
remote: ++ local key
remote: ++ local value
remote: +++ cat
remote: ++ read -r line
remote: ++ [[ CURL_CONNECT_TIMEOUT="90" =~ ^#.* ]]
remote: ++ [[ CURL_CONNECT_TIMEOUT="90" =~ ^$ ]]
remote: ++ key=CURL_CONNECT_TIMEOUT
remote: ++ key=CURL_CONNECT_TIMEOUT
remote: ++ value='"90"'
remote: ++ case "$value" in
remote: ++ value='"90"'
remote: ++ echo 'export CURL_CONNECT_TIMEOUT="90"'
remote: ++ read -r line
remote: ++ [[ CURL_TIMEOUT="60" =~ ^#.* ]]
remote: ++ [[ CURL_TIMEOUT="60" =~ ^$ ]]
remote: ++ key=CURL_TIMEOUT
remote: ++ key=CURL_TIMEOUT
remote: ++ value='"60"'
remote: ++ case "$value" in
remote: ++ value='"60"'
remote: ++ echo 'export CURL_TIMEOUT="60"'
remote: ++ read -r line
remote: ++ [[ DOKKU_APP_TYPE="herokuish" =~ ^#.* ]]
remote: ++ [[ DOKKU_APP_TYPE="herokuish" =~ ^$ ]]
remote: ++ key=DOKKU_APP_TYPE
remote: ++ key=DOKKU_APP_TYPE
remote: ++ value='"herokuish"'
remote: ++ case "$value" in
remote: ++ value='"herokuish"'
remote: ++ echo 'export DOKKU_APP_TYPE="herokuish"'
remote: ++ read -r line
remote: ++ [[ -n '' ]]
remote: + eval export 'CURL_CONNECT_TIMEOUT="90"' export 'CURL_TIMEOUT="60"' export 'DOKKU_APP_TYPE="herokuish"'
remote: ++ export CURL_CONNECT_TIMEOUT=90 export CURL_TIMEOUT=60 export DOKKU_APP_TYPE=herokuish
remote: ++ CURL_CONNECT_TIMEOUT=90
remote: ++ CURL_TIMEOUT=60
remote: ++ DOKKU_APP_TYPE=herokuish
remote: + buildpack-execute
remote: + _select-buildpack
remote: + [[ -n '' ]]
remote: + buildpacks=($buildpack_path/*)
remote: + local buildpacks
remote: + valid_buildpacks=()
remote: + local valid_buildpacks
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/00_buildpack-multi/bin/detect /tmp/build
remote: + indent
remote: + read -r line
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/01_buildpack-ruby/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/02_buildpack-nodejs/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/03_buildpack-clojure/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/04_buildpack-python/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/05_buildpack-java/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/06_buildpack-gradle/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/07_buildpack-scala/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/08_buildpack-play/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/09_buildpack-php/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/10_buildpack-go/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/11_buildpack-erlang/bin/detect /tmp/build
remote: + for buildpack in '"${buildpacks[@]}"'
remote: + unprivileged /tmp/buildpacks/12_buildpack-static/bin/detect /tmp/build
remote: + valid_buildpacks+=("$buildpack")
remote: + [[ 1 -gt 1 ]]
remote: + [[ 1 -gt 0 ]]
remote: + selected_path=/tmp/buildpacks/12_buildpack-static
remote: ++ unprivileged /tmp/buildpacks/12_buildpack-static/bin/detect /tmp/build
remote: ++ setuidgid herokuishuser /tmp/buildpacks/12_buildpack-static/bin/detect /tmp/build
remote: + [[ ! -f /tmp/build/.static ]]
remote: + echo .static
remote: + selected_name=.static
remote: + [[ -n /tmp/buildpacks/12_buildpack-static ]]
remote: + [[ -n .static ]]
remote: + title '.static app detected'
----->' '.static app detected'
-----> .static app detected+ cd /tmp/build
remote: + unprivileged /tmp/buildpacks/12_buildpack-static/bin/compile /tmp/build /cache /tmp/env
remote: + setuidgid herokuishuser /tmp/buildpacks/12_buildpack-static/bin/compile /tmp/build /cache /tmp/env
remote: == --* ]]
-----> .static app detected == ==* ]]
-----> .static app detected
-----> .static app detected'
remote: + read -r line
remote: + NGINX_VERSION=1.10.1
remote: + NGINX_TARBALL=nginx-1.10.1.tar.gz
remote: + PCRE_VERSION=8.39
remote: + PCRE_TARBALL=pcre-8.39.tar.gz
remote: + SIGIL_VERSION=0.4.0
remote: + SIGIL_TARBALL=sigil_0.4.0_Linux_x86_64.tgz
remote: + ZLIB_VERSION=1.2.9
remote: + ZLIB_TARBALL=zlib-1.2.9.tar.gz
remote: + BUILD_DIR=/tmp/build
remote: + CACHE_DIR=/cache
remote: +++ dirname /tmp/buildpacks/12_buildpack-static/bin/compile
remote: ++ cd /tmp/buildpacks/12_buildpack-static/bin
remote: ++ cd ..
remote: ++ pwd
remote: + CUR_DIR=/tmp/buildpacks/12_buildpack-static
remote: + mkdir -p /tmp/build /cache
remote: + [[ ! -e /tmp/build/www ]]
remote: + echo '-----> Copy static files to www'
remote: + [[ -----> Copy static files to www == --* ]]
----->' Copy static files to www
-----> Copy static files to www
remote: + read -r line
remote: + rm -rf /cache/www
remote: + mkdir -p /cache/www
remote: + mv /tmp/build/index.html /cache/www
remote: + mkdir -p /tmp/build/www
remote: + mv /cache/www/index.html /tmp/build/www
remote: + [[ -f /tmp/build/www/nginx.conf.erb ]]
remote: + [[ -f /tmp/build/www/nginx.conf.sigil ]]
remote: + [[ -f /tmp/build/www/app-nginx.conf.sigil ]]
remote: + [[ -f /tmp/build/www/mime.types ]]
remote: + [[ -f /tmp/build/www/CHECKS ]]
remote: + [[ -f /tmp/build/www/app.json ]]
remote: + rm -rf /cache/www
remote: + cd /cache
remote: + [[ ! -d nginx-1.10.1 ]]
remote: + echo '-----> Download and unzip nginx'
remote: + + curl -sSL http://nginx.org/download/nginx-1.10.1.tar.gz -o nginx-1.10.1.tar.gz
remote: [[ -----> Download and unzip nginx == --* ]]
----->' Download and unzip nginx
remote: + read -r line
-----> Download and unzip nginx
remote: + tar xzf nginx-1.10.1.tar.gz
remote: + rm -f nginx-1.10.1.tar.gz
remote: + [[ ! -d pcre-8.39 ]]
remote: + echo '-----> Download and unzip pcre'
remote: + curl -sSL http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz -o pcre-8.39.tar.gz
remote: + [[ -----> Download and unzip pcre == --* ]]
----->' Download and unzip pcre
-----> Download and unzip pcre
remote:
remote: + tar xzf pcre-8.39.tar.gz
remote: + rm -f pcre-8.39.tar.gz
remote: + [[ ! -d zlib-1.2.9 ]]
remote: + echo '-----> Download and unzip zlib'
remote: + [[ -----> Download and unzip zlib == + curl -sSL https://github.com/madler/zlib/archive/v1.2.9.tar.gz -o zlib-1.2.9.tar.gz
remote: --* ]]
----->' Download and unzip zlib
-----> Download and unzip zlib
remote: read -r line
remote: + tar xzf zlib-1.2.9.tar.gz
remote: + rm -rf zlib-1.2.9.tar.gz
remote: + [[ ! -f sigil ]]
remote: + echo '-----> Download and unzip sigil'
remote: + curl -sSL https://github.com/gliderlabs/sigil/releases/download/v0.4.0/sigil_0.4.0_Linux_x86_64.tgz -o sigil_0.4.0_Linux_x86_64.tgz
remote: + [[ -----> Download and unzip sigil == --* ]]
----->' Download and unzip sigil
-----> Download and unzip sigil
remote: + read -r line
remote: + tar xzf sigil_0.4.0_Linux_x86_64.tgz
remote: + rm -rf sigil_0.4.0_Linux_x86_64.tgz
remote: + mkdir -p /tmp/build/sigil
remote: + cp -r sigil /tmp/build/sigil/
remote: + cd nginx-1.10.1
remote: + [[ ! -f /cache/bin/nginx ]]
remote: + echo '-----> Compiling static nginx binary'
remote: + mkdir /tmp/build/nginx
remote: + [[ -----> Compiling static nginx binary == --* ]]
----->' Compiling static nginx binary
remote: + read -r line
-----> Compiling static nginx binary
remote: + suppress ./configure --with-cpu-opt=generic --prefix=/tmp/build/nginx --with-pcre=../pcre-8.39 --sbin-path=. --pid-path=./nginx.pid --conf-path=./nginx.conf --with-ld-opt=-static --with-http_stub_status_module --with-http_gzip_static_module --with-file-aio --with-zlib=../zlib-1.2.9 --with-pcre '--with-cc-opt=-O2 -static -static-libgcc' --without-http_charset_module --without-http_ssi_module --without-http_userid_module --without-http_access_module --without-http_auth_basic_module --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_split_clients_module --without-http_referer_module --without-http_proxy_module --without-http_fastcgi_module --without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_keepalive_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module
remote: + /bin/rm --force /tmp/surpress.out
remote: + ./configure --with-cpu-opt=generic --prefix=/tmp/build/nginx --with-pcre=../pcre-8.39 --sbin-path=. --pid-path=./nginx.pid --conf-path=./nginx.conf --with-ld-opt=-static --with-http_stub_status_module --with-http_gzip_static_module --with-file-aio --with-zlib=../zlib-1.2.9 --with-pcre '--with-cc-opt=-O2 -static -static-libgcc' --without-http_charset_module --without-http_ssi_module --without-http_userid_module --without-http_access_module --without-http_auth_basic_module --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_split_clients_module --without-http_referer_module --without-http_proxy_module --without-http_fastcgi_module --without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_keepalive_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module
remote: + /bin/rm /tmp/surpress.out
remote: + sed -i '/CFLAGS/s/ \-O //g' objs/Makefile
remote: + suppress make
remote: + /bin/rm --force /tmp/surpress.out
remote: + make
remote: + [[ objs/src/core/nginx.o: In function `ngx_load_module': == --* ]]
remote: + [[ objs/src/core/nginx.o: In function `ngx_load_module': == ==* ]]
' 'objs/src/core/nginx.o: In function `ngx_load_module'\'':'
remote: + read -r line
objs/src/core/nginx.o: In function `ngx_load_module':
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1475: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == --* ]]
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1475: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == ==* ]]
' '/cache/nginx-1.10.1/src/core/nginx.c:1475: warning: Using '\''dlopen'\'' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking'
remote: + read -r line
remote: + [[ objs/src/os/unix/ngx_process_cycle.o: In function `ngx_worker_process_init': == --* ]]
remote: + [[ objs/src/os/unix/ngx_process_cycle.o: In function `ngx_worker_process_init': == ==* ]]
' 'objs/src/os/unix/ngx_process_cycle.o: In function `ngx_worker_process_init'\'':'
remote: + read -r line
/cache/nginx-1.10.1/src/core/nginx.c:1475: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
objs/src/os/unix/ngx_process_cycle.o: In function `ngx_worker_process_init':
remote: + [[ /cache/nginx-1.10.1/src/os/unix/ngx_process_cycle.c:838: warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == --* ]]
remote: + [[ /cache/nginx-1.10.1/src/os/unix/ngx_process_cycle.c:838: warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == ==* ]]
' '/cache/nginx-1.10.1/src/os/unix/ngx_process_cycle.c:838: warning: Using '\''initgroups'\'' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking'
/cache/nginx-1.10.1/src/os/unix/ngx_process_cycle.c:838: warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
remote: + read -r line
remote: + [[ objs/src/core/nginx.o: In function `ngx_core_module_init_conf': == --* ]]
remote: + [[ objs/src/core/nginx.o: In function `ngx_core_module_init_conf': == ==* ]]
' 'objs/src/core/nginx.o: In function `ngx_core_module_init_conf'\'':'
objs/src/core/nginx.o: In function `ngx_core_module_init_conf':
remote: -r line
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1070: warning: Using 'getgrnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == --* ]]
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1070: warning: Using 'getgrnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == ==* ]]
' '/cache/nginx-1.10.1/src/core/nginx.c:1070: warning: Using '\''getgrnam'\'' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking'
/cache/nginx-1.10.1/src/core/nginx.c:1070: warning: Using 'getgrnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
remote: + read -r line
remote: + /bin/rm /tmp/surpress.out
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1059: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == --* ]]
remote: + [[ /cache/nginx-1.10.1/src/core/nginx.c:1059: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == ==* ]]
' '/cache/nginx-1.10.1/src/core/nginx.c:1059: warning: Using '\''getpwnam'\'' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking'
remote: + read -r line
remote: + [[ objs/src/core/ngx_inet.o: In function `ngx_inet_resolve_host': == --* ]]
remote: + [[ objs/src/core/ngx_inet.o: In function `ngx_inet_resolve_host': == ==* ]]
' 'objs/src/core/ngx_inet.o: In function `ngx_inet_resolve_host'\'':'
remote: + read -r line
/cache/nginx-1.10.1/src/core/nginx.c:1059: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
objs/src/core/ngx_inet.o: In function `ngx_inet_resolve_host':
remote: + [[ /cache/nginx-1.10.1/src/core/ngx_inet.c:1120: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == --* ]]
remote: + [[ /cache/nginx-1.10.1/src/core/ngx_inet.c:1120: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking == ==* ]]
' '/cache/nginx-1.10.1/src/core/ngx_inet.c:1120: warning: Using '\''gethostbyname'\'' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking'
remote: + read -r line
/cache/nginx-1.10.1/src/core/ngx_inet.c:1120: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
remote: + suppress make install
remote: + /bin/rm --force /tmp/surpress.out
remote: + make install
remote: + /bin/rm /tmp/surpress.out
remote: + rm -rf /cache/bin
remote: + mkdir -p /cache/bin/
remote: + cp -r /tmp/build/nginx/fastcgi.conf /tmp/build/nginx/fastcgi.conf.default /tmp/build/nginx/fastcgi_params /tmp/build/nginx/fastcgi_params.default /tmp/build/nginx/html /tmp/build/nginx/koi-utf /tmp/build/nginx/koi-win /tmp/build/nginx/logs /tmp/build/nginx/mime.types /tmp/build/nginx/mime.types.default /tmp/build/nginx/nginx /tmp/build/nginx/nginx.conf /tmp/build/nginx/nginx.conf.default /tmp/build/nginx/scgi_params /tmp/build/nginx/scgi_params.default /tmp/build/nginx/uwsgi_params /tmp/build/nginx/uwsgi_params.default /tmp/build/nginx/win-utf /cache/bin/
remote: + mkdir -p /tmp/build/.profile.d
remote: + cat
remote: + cd /tmp/buildpacks/12_buildpack-static
remote: + '[' -f /tmp/build/app-nginx.conf.sigil ']'
remote: + '[' -f /tmp/build/nginx.conf.erb ']'
remote: + echo '-----> Using default app-nginx.conf.sigil'
remote: + cp conf/app-nginx.conf.sigil /tmp/build/nginx/app-nginx.conf.sigil
remote: + [[ -----> Using default app-nginx.conf.sigil == --* ]]
----->' Using default app-nginx.conf.sigil
remote: + read -r line
-----> Using default app-nginx.conf.sigil
remote: + '[' -f /tmp/build/mime.types ']'
remote: + echo '-----> Using default mime.types'
remote: + cp conf/mime.types /tmp/build/nginx/mime.types
remote: + [[ -----> Using default mime.types == --* ]]
----->' Using default mime.types
remote: + read -r line
-----> Using default mime.types
remote: + cat
remote: + chmod +x /tmp/build/start_nginx
remote: + [[ -f /tmp/buildpacks/12_buildpack-static/bin/release ]]
remote: + unprivileged /tmp/buildpacks/12_buildpack-static/bin/release /tmp/build /cache
remote: + setuidgid herokuishuser /tmp/buildpacks/12_buildpack-static/bin/release /tmp/build /cache
remote: + cat
remote: + [[ -f /tmp/build/.release ]]
remote: ++ cat /tmp/build/.release
remote: ++ yaml-get config_vars
remote: ++ /bin/herokuish ::: yaml-get config_vars
remote: + config_vars=
remote: + [[ -n '' ]]
remote: + cd -
remote: + _move-build-to-app
remote: + shopt -s dotglob nullglob
remote: + rm -rf /app/.basher /app/.env /app/.static /app/index.html
remote: + mv /tmp/build/.env /tmp/build/.profile.d /tmp/build/.release /tmp/build/.static /tmp/build/nginx /tmp/build/sigil /tmp/build/start_nginx /tmp/build/www /app
remote: + shopt -u dotglob nullglob
remote: + procfile-types
remote: + title 'Discovering process types'
remote: + indent
remote: + read -r line
----->' 'Discovering process types'
-----> Discovering process types/app/Procfile == ]]
remote: --*+ ]]
-----> Discovering process types == [[ -s /app/.release ]]
remote: + ==* ]]
remote: + local default_types
-----> Discovering process types'
-----> Discovering process types
remote: read -r line
remote: ++ cat /app/.release
remote: ++ xargs echo
remote: ++ yaml-keys default_process_types
remote: ++ /bin/herokuish ::: yaml-keys default_process_types
remote: + default_types=web
remote: + [[ -n web ]]
remote: + echo 'Default types for -> web'
remote: + + [[ Default types for -> web == --* ]]
remote: + [[ Default types for -> web == ==* ]]
' 'Default types for -> web'
Default types for -> web
remote: +
remote: read -r line
remote: ++ cat /app/.release
remote: ++ yaml-get default_process_types web
remote: ++ /bin/herokuish ::: yaml-get default_process_types web
remote: + echo 'web: /app/start_nginx'
remote: + return
remote: ++ docker wait d6e58b70f7f998450103768d7c9b1a1f73546c3f8cd08e37dab9e5dfb57beeaa
remote: + test 0 -eq 0
remote: + docker commit d6e58b70f7f998450103768d7c9b1a1f73546c3f8cd08e37dab9e5dfb57beeaa dokku/testapp:latest
remote: + plugn trigger post-build-buildpack testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + release_and_deploy testapp
remote: + declare 'desc=main function for releasing and deploying an app'
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: ++ get_app_image_name testapp ''
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local DOKKU_DOCKERFILE_PORTS
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + verify_image dokku/testapp:latest
remote: + declare 'desc=verify image existence'
remote: + local IMAGE=dokku/testapp:latest
remote: + docker inspect dokku/testapp:latest
remote: + return 0
remote: + is_image_herokuish_based dokku/testapp:latest
remote: + declare 'desc=returns true if app image is based on herokuish'
remote: + [[ ! -f /home/ubuntu/.circlerc ]]
remote: + local DOCKER_ARGS=--rm
remote: + docker run --label=dokku --entrypoint=/bin/sh --rm dokku/testapp:latest -c 'test -f /exec'
remote: + local IMAGE_SOURCE_TYPE=herokuish
remote: ++ config_get testapp DOKKU_SKIP_DEPLOY
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_SKIP_DEPLOY
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_SKIP_DEPLOY
remote: ++ true
remote: + local DOKKU_APP_SKIP_DEPLOY=
remote: ++ config_get --global DOKKU_SKIP_DEPLOY
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get --global DOKKU_SKIP_DEPLOY
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get --global DOKKU_SKIP_DEPLOY
remote: ++ true
remote: + local DOKKU_GLOBAL_SKIP_DEPLOY=
remote: + local DOKKU_SKIP_DEPLOY=
remote: + dokku_log_info1 'Releasing testapp (dokku/testapp:latest)...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Releasing testapp (dokku/testapp:latest)...'
remote: + dokku_release testapp herokuish ''
remote: + declare 'desc=release phase'
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
-----> Releasing testapp (dokku/testapp:latest)...
remote: + local APP=testapp
remote: + local IMAGE_SOURCE_TYPE=herokuish
remote: + local IMAGE_TAG=
remote: ++ get_app_image_name testapp ''
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local cid
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + case "$IMAGE_SOURCE_TYPE" in
remote: + plugn trigger pre-release-buildpack testapp ''
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ config_export global
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=global
remote: ++ shift
remote: ++ local APP=
remote: ++ [[ global == \g\l\o\b\a\l ]]
remote: ++ APP=--global
remote: ++ config_sub export --global
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export --global
remote: ++ return 0
remote: + [[ -n export CURL_CONNECT_TIMEOUT='90'
remote: export CURL_TIMEOUT='60' ]]
remote: ++ config_export global
remote: ++ docker run --label=dokku -i -a stdin dokku/testapp:latest /bin/bash -c 'mkdir -p /app/.profile.d && cat > /app/.profile.d/00-global-env.sh'
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=global
remote: ++ shift
remote: ++ local APP=
remote: ++ [[ global == \g\l\o\b\a\l ]]
remote: ++ APP=--global
remote: ++ config_sub export --global
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export --global
remote: ++ return 0
remote: + cid=65acf0b1fe467315e7c84c01512223b21121102eb4e0a2aa4b0d95bd03a9043c
remote: ++ docker wait 65acf0b1fe467315e7c84c01512223b21121102eb4e0a2aa4b0d95bd03a9043c
remote: + test 0 -eq 0
remote: + docker commit 65acf0b1fe467315e7c84c01512223b21121102eb4e0a2aa4b0d95bd03a9043c dokku/testapp:latest
remote: ++ config_export app testapp
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export testapp
remote: ++ return 0
remote: + [[ -n export DOKKU_APP_TYPE='herokuish' ]]
remote: ++ config_export app testapp
remote: ++ docker run --label=dokku -i -a stdin dokku/testapp:latest /bin/bash -c 'mkdir -p /app/.profile.d && cat > /app/.profile.d/01-app-env.sh'
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export testapp
remote: ++ return 0
remote: + cid=0051e5798eabadc54145878f313f633f52e51e72cd0894bd2b24ec60c8a83b60
remote: ++ docker wait 0051e5798eabadc54145878f313f633f52e51e72cd0894bd2b24ec60c8a83b60
remote: + test 0 -eq 0
remote: + docker commit 0051e5798eabadc54145878f313f633f52e51e72cd0894bd2b24ec60c8a83b60 dokku/testapp:latest
remote: + plugn trigger post-release-buildpack testapp ''
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + [[ '' != \t\r\u\e ]]
remote: + dokku_log_info1 'Deploying testapp (dokku/testapp:latest)...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Deploying testapp (dokku/testapp:latest)...'
remote: + dokku_deploy_cmd testapp ''
-----> Deploying testapp (dokku/testapp:latest)...
remote: + declare 'desc=deploy phase'
remote: + local cmd=deploy
remote: + source /var/lib/dokku/plugins/available/checks/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + [[ -z testapp ]]
remote: + local APP=testapp IMAGE_TAG=
remote: + local DOKKU_DOCKER_STOP_TIMEOUT DOKKU_HEROKUISH DOKKU_NETWORK_BIND_ALL IMAGE
remote: + DOKKU_HEROKUISH=false
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + plugn trigger pre-deploy testapp ''
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/core-plugins/available/00_dokku-standard/exec-app-json-scripts
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + exec_app_json_scripts testapp ''
remote: + declare 'desc=core app.json scripts execution'
remote: + local 'trigger=pre-deploy app_json_scripts'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: + local PHASE_SCRIPT_KEY=predeploy
remote: + dokku_log_info1 'Attempting to run scripts.dokku.predeploy from app.json (if defined)'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Attempting to run scripts.dokku.predeploy from app.json (if defined)'
remote: + execute_script testapp '' predeploy
remote: + declare 'desc=executes appropriate phase script key from app.json'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
-----> Attempting to run scripts.dokku.predeploy from app.json (if defined)
remote: + local PHASE_SCRIPT_KEY=predeploy
remote: + local IMAGE id
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ get_phase_script dokku/testapp:latest predeploy
remote: + local SCRIPT_CMD=
remote: + [[ -n '' ]]
remote: + app_user_pre_deploy_trigger testapp ''
remote: + local 'desc=app user pre-deploy trigger'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: + local IMAGE
remote: + local DOCKER_ARGS
remote: + local DOKKU_APP_TYPE DOKKU_APP_USER APP_PATHS CONTAINER_PATHS
remote: + declare -a ARG_ARRAY
remote: ++ get_app_image_name testapp ''
remote: ++ declare 'desc=return image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -n '' ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ config_get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_TYPE
remote: + DOKKU_APP_TYPE=herokuish
remote: ++ config_get testapp DOKKU_APP_USER
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_USER
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_USER
remote: ++ true
remote: + DOKKU_APP_USER=
remote: + DOKKU_APP_USER=herokuishuser
remote: ++ dokku --quiet storage:list testapp
remote: + export DOKKU_DISTRO
remote: ++ . /etc/os-release
remote: ++ echo ubuntu
remote: + DOKKU_DISTRO=ubuntu
remote: + export DOKKU_IMAGE=gliderlabs/herokuish
remote: + DOKKU_IMAGE=gliderlabs/herokuish
remote: + export DOKKU_LIB_ROOT=/var/lib/dokku
remote: + DOKKU_LIB_ROOT=/var/lib/dokku
remote: + export PLUGIN_PATH=/var/lib/dokku/plugins
remote: + PLUGIN_PATH=/var/lib/dokku/plugins
remote: + export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
remote: + PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
remote: + export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
remote: + PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
remote: + export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
remote: + PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
remote: + export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
remote: + PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
remote: + export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
remote: + PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
remote: + export DOKKU_API_VERSION=1
remote: + DOKKU_API_VERSION=1
remote: + export DOKKU_NOT_IMPLEMENTED_EXIT=10
remote: + DOKKU_NOT_IMPLEMENTED_EXIT=10
remote: + export DOKKU_VALID_EXIT=0
remote: + DOKKU_VALID_EXIT=0
remote: + export DOKKU_LOGS_DIR=/var/log/dokku
remote: + DOKKU_LOGS_DIR=/var/log/dokku
remote: + export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
remote: + DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
remote: + export DOKKU_CONTAINER_LABEL=dokku
remote: + DOKKU_CONTAINER_LABEL=dokku
remote: + export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
remote: + DOKKU_GLOBAL_RUN_ARGS=--label=dokku
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + parse_args --quiet storage:list testapp
remote: + declare 'desc=top-level cli arg parser'
remote: + local next_index=1
remote: + local skip=false
remote: + args=("$@")
remote: + local args
remote: + for arg in '"$@"'
remote: + [[ false == \t\r\u\e ]]
remote: + case "$arg" in
remote: + export DOKKU_QUIET_OUTPUT=1
remote: + DOKKU_QUIET_OUTPUT=1
remote: + next_index=2
remote: + for arg in '"$@"'
remote: + [[ false == \t\r\u\e ]]
remote: + case "$arg" in
remote: + next_index=3
remote: + for arg in '"$@"'
remote: + [[ false == \t\r\u\e ]]
remote: + case "$arg" in
remote: + next_index=4
remote: + return 0
remote: + args=("$@")
remote: + skip_arg=false
remote: + [[ --quiet =~ ^--.* ]]
remote: + for arg in '"$@"'
remote: + false
remote: + [[ --quiet == \-\-\a\p\p ]]
remote: + [[ --quiet =~ ^--.* ]]
remote: + shift 1
remote: + for arg in '"$@"'
remote: + false
remote: + [[ storage:list == \-\-\a\p\p ]]
remote: + [[ storage:list =~ ^--.* ]]
remote: + break
remote: + has_tty
remote: + declare 'desc=return 0 if we have a tty'
remote: ++ /usr/bin/tty
remote: ++ true
remote: + [[ not a tty == \n\o\t\ \a\ \t\t\y ]]
remote: + return 1
remote: + DOKKU_QUIET_OUTPUT=1
remote: ++ id -un
remote: + [[ dokku != \d\o\k\k\u ]]
remote: + [[ storage:list =~ ^plugin:.* ]]
remote: + [[ storage:list == \s\s\h\-\k\e\y\s\:\a\d\d ]]
remote: + [[ -n '' ]]
remote: + dokku_auth storage:list testapp
remote: + declare 'desc=calls user-auth plugin trigger'
remote: + export SSH_USER=dokku
remote: + SSH_USER=dokku
remote: + export SSH_NAME=ubuntu
remote: + SSH_NAME=ubuntu
remote: + plugn trigger user-auth dokku ubuntu storage:list testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ storage:list =~ (ssh-keys:add|ssh-keys:remove) ]]
remote: + return 0
remote: + case "$1" in
remote: + execute_dokku_cmd storage:list testapp
remote: + declare 'desc=executes dokku sub-commands'
remote: + local PLUGIN_NAME=storage:list
remote: + local PLUGIN_CMD=storage:list
remote: + local implemented=0
remote: + local script
remote: + argv=("$@")
remote: + local argv
remote: + case "$PLUGIN_NAME" in
remote: ++ readlink -f /var/lib/dokku/plugins/enabled/storage
remote: + [[ /var/lib/dokku/core-plugins/available/storage == *core-plugins* ]]
remote: + [[ storage:list == \s\t\o\r\a\g\e\:\l\i\s\t ]]
remote: + shift 1
remote: + [[ ! -z '' ]]
remote: + set -- storage:list testapp
remote: + [[ -x /var/lib/dokku/plugins/enabled/storage:list/subcommands/default ]]
remote: + [[ -x /var/lib/dokku/plugins/enabled/storage:list/subcommands/storage:list ]]
remote: + [[ -x /var/lib/dokku/plugins/enabled/storage/subcommands/list ]]
remote: + [[ -n list ]]
remote: + /var/lib/dokku/plugins/enabled/storage/subcommands/list storage:list testapp
remote: + source /var/lib/dokku/plugins/available/storage/internal-functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/docker-options/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ AVAILABLE_PHASES=(build deploy run)
remote: ++ source /var/lib/dokku/plugins/available/storage/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ source /var/lib/dokku/plugins/available/docker-options/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: ++++ AVAILABLE_PHASES=(build deploy run)
remote: + storage_list_cmd storage:list testapp
remote: + declare 'desc=List all bound mounts'
remote: + local cmd=storage:list
remote: + local passed_phases=deploy
remote: + [[ -z testapp ]]
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP=testapp
remote: + echo 'testapp volume bind-mounts:'
remote: ++ get_phase_file_path deploy
remote: ++ declare 'desc=return docker-options config file path for specified phase'
remote: ++ local phase_file_prefix=DOCKER_OPTIONS_
remote: ++ local phase=deploy
remote: ++ [[ -n testapp ]]
remote: ++ [[ -n deploy ]]
remote: ++ fn-get-phase-file-path testapp deploy
remote: ++ declare 'desc=return docker-options config file path for specified phase'
remote: ++ local APP=testapp PHASE=deploy
remote: ++ local PHASE_FILE=/home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: ++ echo /home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: + get_bind_mounts /home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: + declare 'desc=strips docker options and prints mounts'
remote: + local -r phase_file_path=/home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: + [[ -r /home/dokku/testapp/DOCKER_OPTIONS_DEPLOY ]]
remote: + sed -e '/^-v/!d' -e 's/^-v/ /'
remote: + implemented=1
remote: + [[ 1 -eq 0 ]]
remote: + [[ 1 -eq 0 ]]
remote: + APP_PATHS='testapp volume bind-mounts:'
remote: + [[ -n testapp volume bind-mounts: ]]
remote: ++ echo 'testapp volume bind-mounts:'
remote: ++ xargs
remote: ++ awk -F : '{ print $2 }'
remote: + CONTAINER_PATHS=
remote: ++ :
remote: ++ plugn trigger docker-args-deploy testapp ''
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + app_user_docker_args testapp ''
remote: + local APP=testapp
remote: + local STDIN
remote: + local DOKKU_APP_TYPE
remote: + local DOKKU_APP_USER
remote: ++ cat
remote: + STDIN=
remote: ++ config_get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_TYPE
remote: + DOKKU_APP_TYPE=herokuish
remote: ++ config_get testapp DOKKU_APP_USER
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_USER
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_USER
remote: ++ true
remote: + DOKKU_APP_USER=
remote: + DOKKU_APP_USER=herokuishuser
remote: + [[ herokuish == \h\e\r\o\k\u\i\s\h ]]
remote: + local 'docker_args= --env=USER=herokuishuser'
remote: + echo -n ' --env=USER=herokuishuser'
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + config_docker_args testapp ''
remote: + declare 'desc=config docker-args plugin trigger'
remote: + declare APP=testapp IMAGE_TAG=
remote: + local ENV_ARGS IMAGE STDIN trigger
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ cat
remote: + STDIN=
remote: + trigger='/var/lib/dokku/plugins/enabled/config/docker-args-deploy config_docker_args'
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + is_image_herokuish_based dokku/testapp:latest
remote: + declare 'desc=returns true if app image is based on herokuish'
remote: + [[ ! -f /home/ubuntu/.circlerc ]]
remote: + local DOCKER_ARGS=--rm
remote: + docker run --label=dokku --entrypoint=/bin/sh --rm dokku/testapp:latest -c 'test -f /exec'
remote: + echo -n ''
remote: + docker_args testapp ''
remote: + declare 'desc=docker args plugin trigger'
remote: + local trigger=/var/lib/dokku/plugins/enabled/docker-options/docker-args-deploy
remote: ++ cat
remote: + local STDIN=
remote: + local APP=testapp
remote: + local IMAGE_SOURCE_TYPE=
remote: + case "$0" in
remote: + local PHASE=DEPLOY
remote: + local FILE_PREFIX=DOCKER_OPTIONS_
remote: + local PHASE_FILE_PATH=/home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: + local output=
remote: + [[ -f /home/dokku/testapp/DOCKER_OPTIONS_DEPLOY ]]
remote: + local DONE=false
remote: + false
remote: + local line
remote: + read -r line
remote: + [[ ! -n --restart=on-failure:10 ]]
remote: + case "$line" in
remote: + case "$IMAGE_SOURCE_TYPE" in
remote: + local 'output= --restart=on-failure:10'
remote: + false
remote: + local line
remote: + read -r line
remote: + local DONE=true
remote: + [[ ! -n '' ]]
remote: + continue
remote: + true
remote: + echo -n ' --restart=on-failure:10'
remote: + DOCKER_ARGS=' --env=USER=herokuishuser --restart=on-failure:10'
remote: ++ sed -e 's/--restart=[[:graph:]]\+[[:blank:]]\?//g'
remote: + DOCKER_ARGS=' --env=USER=herokuishuser '
remote: + eval 'ARG_ARRAY=( --env=USER=herokuishuser )'
remote: ++ ARG_ARRAY=(--env=USER=herokuishuser)
remote: + [[ herokuish == \h\e\r\o\k\u\i\s\h ]]
remote: + [[ -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/ps/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + ps_pre_deploy testapp ''
remote: + declare 'desc=ps pre-deploy plugin trigger'
remote: + local trigger=ps_pre_deploy
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: + extract_procfile testapp ''
remote: + declare 'desc=extracts procfile from app image'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local DOKKU_PROCFILE=/home/dokku/testapp/DOKKU_PROCFILE
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + remove_procfile testapp
remote: + declare 'desc=removes DOKKU_PROCFILE'
remote: + local APP=testapp
remote: + local DOKKU_PROCFILE=/home/dokku/testapp/DOKKU_PROCFILE
remote: + [[ -f /home/dokku/testapp/DOKKU_PROCFILE ]]
remote: + copy_from_image dokku/testapp:latest Procfile /home/dokku/testapp/DOKKU_PROCFILE
remote: + [[ -f /home/dokku/testapp/DOKKU_PROCFILE ]]
remote: + dokku_log_info1_quiet 'App Procfile file found (/home/dokku/testapp/DOKKU_PROCFILE)'
remote: + declare 'desc=log info1 formatter (with quiet option)'
remote: + [[ -z '' ]]
remote: + echo '-----> App Procfile file found (/home/dokku/testapp/DOKKU_PROCFILE)'
remote: + generate_scale_file testapp ''
remote: + declare 'desc=generates DOKKU_SCALE file'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
-----> App Procfile file found (/home/dokku/testapp/DOKKU_PROCFILE)
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local DOKKU_SCALE_FILE=/home/dokku/testapp/DOKKU_SCALE
remote: + local DOKKU_PROCFILE=/home/dokku/testapp/DOKKU_PROCFILE
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + copy_from_image dokku/testapp:latest DOKKU_SCALE /home/dokku/testapp
remote: + [[ ! -f /home/dokku/testapp/DOKKU_SCALE ]]
remote: + dokku_log_info1_quiet 'DOKKU_SCALE file not found in app image. Generating one based on Procfile...'
remote: + declare 'desc=log info1 formatter (with quiet option)'
remote: + [[ -z '' ]]
remote: + echo '-----> DOKKU_SCALE file not found in app image. Generating one based on Procfile...'
-----> DOKKU_SCALE file not found in app image. Generating one based on Procfile...
remote: ++ mktemp -d /tmp/dokku_scale.XXXX
remote: + local GENERATE_SCALE_FILE_TMP_WORK_DIR=/tmp/dokku_scale.YFG7
remote: + trap 'rm -rf "$GENERATE_SCALE_FILE_TMP_WORK_DIR" > /dev/null' RETURN
remote: + [[ -f /home/dokku/testapp/DOKKU_PROCFILE ]]
remote: + read -r line
remote: + [[ -z web: /app/start_nginx ]]
remote: + [[ web: /app/start_nginx == \#* ]]
remote: + local NAME=web
remote: + local NUM_PROCS=0
remote: + [[ web == \w\e\b ]]
remote: + NUM_PROCS=1
remote: + [[ -n web ]]
remote: + echo web=1
remote: + read -r line
remote: + [[ -n '' ]]
remote: + dokku_log_info1_quiet 'New DOKKU_SCALE file generated'
remote: + declare 'desc=log info1 formatter (with quiet option)'
remote: + [[ -z '' ]]
remote: + echo '-----> New DOKKU_SCALE file generated'
remote: + print_dokku_scale_file testapp
remote: + declare 'desc=prints contents of DOKKU_SCALE file'
remote: + local APP=testapp
remote: + local DOKKU_SCALE_FILE=/home/dokku/testapp/DOKKU_SCALE
remote: + read -r line
remote: + dokku_log_info2_quiet web=1
remote: + declare 'desc=log info2 formatter (with quiet option)'
remote: + [[ -z '' ]]
remote: + echo '=====> web=1'
remote: + read -r line
remote: + [[ -n '' ]]
remote: ++ rm -rf /tmp/dokku_scale.YFG7
-----> New DOKKU_SCALE file generated
=====> web=1
remote: ++ rm -rf ''
remote: + is_image_herokuish_based dokku/testapp:latest
remote: + declare 'desc=returns true if app image is based on herokuish'
remote: + [[ ! -f /home/ubuntu/.circlerc ]]
remote: + local DOCKER_ARGS=--rm
remote: + docker run --label=dokku --entrypoint=/bin/sh --rm dokku/testapp:latest -c 'test -f /exec'
remote: + DOKKU_HEROKUISH=true
remote: + local DOKKU_SCALE_FILE=/home/dokku/testapp/DOKKU_SCALE
remote: ++ get_app_container_ids testapp
remote: ++ declare 'desc=returns list of docker container ids for given app and optional container_type'
remote: ++ local APP=testapp
remote: ++ local CONTAINER_TYPE=
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ [[ -f /home/dokku/testapp/CONTAINER ]]
remote: ++ [[ -n '' ]]
remote: ++ local 'CONTAINER_PATTERN=/home/dokku/testapp/CONTAINER.*'
remote: ++ shopt -s nullglob
remote: ++ local DOKKU_CID_FILE
remote: ++ shopt -u nullglob
remote: ++ echo ''
remote: + local oldids=
remote: ++ plugn trigger network-get-property testapp bind-all-interfaces
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + DOKKU_NETWORK_BIND_ALL=false
remote: ++ config_get testapp DOKKU_DOCKER_STOP_TIMEOUT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_DOCKER_STOP_TIMEOUT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DOCKER_STOP_TIMEOUT
remote: ++ true
remote: + DOKKU_DOCKER_STOP_TIMEOUT=
remote: + [[ -n '' ]]
remote: + local line
remote: + local PROC_TYPE
remote: + local PROC_COUNT
remote: + local CONTAINER_INDEX
remote: + read -r line
remote: + [[ web=1 =~ ^#.* ]]
remote: ++ strip_inline_comments web=1
remote: ++ declare 'desc=removes bash-style comment from input line'
remote: ++ local line=web=1
remote: ++ local stripped_line=web=1
remote: ++ echo web=1
remote: + line=web=1
remote: + PROC_TYPE=web
remote: + PROC_COUNT=1
remote: + CONTAINER_INDEX=1
remote: ++ is_app_proctype_checks_disabled testapp web
remote: ++ declare 'desc=return true if app'\''s proctype(s) checks are disabled'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local PROCTYPE=web status=false
remote: +++ config_get testapp DOKKU_CHECKS_DISABLED
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_CHECKS_DISABLED
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_CHECKS_DISABLED
remote: +++ true
remote: ++ local DOKKU_CHECKS_DISABLED=
remote: ++ [[ '' == \_\a\l\l\_ ]]
remote: +++ is_val_in_list web ''
remote: +++ declare 'desc=return true if value (web) is in list () separated by delimiter (); delimiter defaults to comma'
remote: +++ local value=web list= delimiter=,
remote: +++ local IFS=, val_in_list=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: ++ echo false
remote: + [[ false == \t\r\u\e ]]
remote: + [[ 1 -le 1 ]]
remote: + local cid=
remote: + local port=
remote: + local ipaddr=
remote: + local DOKKU_CONTAINER_ID_FILE=/home/dokku/testapp/CONTAINER.web.1
remote: + local DOCKER_ARGS
remote: ++ :
remote: ++ plugn trigger docker-args-deploy testapp '' web 1
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + app_user_docker_args testapp '' web 1
remote: + local APP=testapp
remote: + local STDIN
remote: + local DOKKU_APP_TYPE
remote: + local DOKKU_APP_USER
remote: ++ cat
remote: + STDIN=
remote: ++ config_get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_TYPE
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_TYPE
remote: + DOKKU_APP_TYPE=herokuish
remote: ++ config_get testapp DOKKU_APP_USER
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_APP_USER
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_USER
remote: ++ true
remote: + DOKKU_APP_USER=
remote: + DOKKU_APP_USER=herokuishuser
remote: + [[ herokuish == \h\e\r\o\k\u\i\s\h ]]
remote: + local 'docker_args= --env=USER=herokuishuser'
remote: + echo -n ' --env=USER=herokuishuser'
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + config_docker_args testapp '' web 1
remote: + declare 'desc=config docker-args plugin trigger'
remote: + declare APP=testapp IMAGE_TAG=
remote: + local ENV_ARGS IMAGE STDIN trigger
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ cat
remote: + STDIN=
remote: + trigger='/var/lib/dokku/plugins/enabled/config/docker-args-deploy config_docker_args'
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + is_image_herokuish_based dokku/testapp:latest
remote: + declare 'desc=returns true if app image is based on herokuish'
remote: + [[ ! -f /home/ubuntu/.circlerc ]]
remote: + local DOCKER_ARGS=--rm
remote: + docker run --label=dokku --entrypoint=/bin/sh --rm dokku/testapp:latest -c 'test -f /exec'
remote: + echo -n ''
remote: + docker_args testapp '' web 1
remote: + declare 'desc=docker args plugin trigger'
remote: + local trigger=/var/lib/dokku/plugins/enabled/docker-options/docker-args-deploy
remote: ++ cat
remote: + local STDIN=
remote: + local APP=testapp
remote: + local IMAGE_SOURCE_TYPE=
remote: + case "$0" in
remote: + local PHASE=DEPLOY
remote: + local FILE_PREFIX=DOCKER_OPTIONS_
remote: + local PHASE_FILE_PATH=/home/dokku/testapp/DOCKER_OPTIONS_DEPLOY
remote: + local output=
remote: + [[ -f /home/dokku/testapp/DOCKER_OPTIONS_DEPLOY ]]
remote: + local DONE=false
remote: + false
remote: + local line
remote: + read -r line
remote: + [[ ! -n --restart=on-failure:10 ]]
remote: + case "$line" in
remote: + case "$IMAGE_SOURCE_TYPE" in
remote: + local 'output= --restart=on-failure:10'
remote: + false
remote: + local line
remote: + read -r line
remote: + local DONE=true
remote: + [[ ! -n '' ]]
remote: + continue
remote: + true
remote: + echo -n ' --restart=on-failure:10'
remote: + DOCKER_ARGS=' --env=USER=herokuishuser --restart=on-failure:10'
remote: + DOCKER_ARGS+=' -e DYNO=web.1 '
remote: + [[ -n 1 ]]
remote: + DOCKER_ARGS+=' -e TRACE=true '
remote: + declare -a ARG_ARRAY
remote: + eval 'ARG_ARRAY=( --env=USER=herokuishuser --restart=on-failure:10 -e DYNO=web.1 -e TRACE=true )'
remote: ++ ARG_ARRAY=(--env=USER=herokuishuser --restart=on-failure:10 -e DYNO=web.1 -e TRACE=true)
remote: + [[ true == \t\r\u\e ]]
remote: + local 'START_CMD=/start web'
remote: + [[ true == \f\a\l\s\e ]]
remote: + [[ web == \w\e\b ]]
remote: + ports=($(plugn trigger network-compute-ports "$APP" "$PROC_TYPE" "$DOKKU_HEROKUISH"))
remote: ++ plugn trigger network-compute-ports testapp web true
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + local DOKKU_DOCKER_PORT_ARGS=
remote: + local DOKKU_PORT=
remote: + for p in '"${ports[@]}"'
remote: + [[ ! 5000 =~ .*udp.* ]]
remote: + DOKKU_PORT=5000
remote: + DOKKU_DOCKER_PORT_ARGS+=' -p 5000 '
remote: + [[ false == \f\a\l\s\e ]]
remote: ++ docker run --label=dokku -d -e PORT=5000 --env=USER=herokuishuser --restart=on-failure:10 -e DYNO=web.1 -e TRACE=true dokku/testapp:latest /start web
remote: + cid=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: ++ plugn trigger network-get-ipaddr testapp web 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + ipaddr=172.17.0.2
remote: ++ plugn trigger network-get-port testapp web true 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + port=5000
remote: + trap 'kill_new $cid' INT TERM EXIT
remote: ++ is_app_proctype_checks_disabled testapp web
remote: ++ declare 'desc=return true if app'\''s proctype(s) checks are disabled'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local PROCTYPE=web status=false
remote: +++ config_get testapp DOKKU_CHECKS_DISABLED
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_CHECKS_DISABLED
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_CHECKS_DISABLED
remote: +++ true
remote: ++ local DOKKU_CHECKS_DISABLED=
remote: ++ [[ '' == \_\a\l\l\_ ]]
remote: +++ is_val_in_list web ''
remote: +++ declare 'desc=return true if value (web) is in list () separated by delimiter (); delimiter defaults to comma'
remote: +++ local value=web list= delimiter=,
remote: +++ local IFS=, val_in_list=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: ++ echo false
remote: + [[ false == \f\a\l\s\e ]]
remote: + dokku_log_info1 'Attempting pre-flight checks'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Attempting pre-flight checks'
remote: + plugn trigger check-deploy testapp 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93 web 5000 172.17.0.2
-----> Attempting pre-flight checks
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/checks/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + checks_check_deploy testapp 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93 web 5000 172.17.0.2
remote: + declare 'desc=checks check-deploy plugin trigger'
remote: + local trigger=checks_check_deploy
remote: + local APP=testapp
remote: + local DOKKU_APP_CONTAINER_ID=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + local DOKKU_APP_CONTAINER_TYPE=web
remote: + local DOKKU_APP_LISTEN_PORT=5000
remote: + local DOKKU_APP_LISTEN_IP=172.17.0.2
remote: + [[ -z 5000 ]]
remote: + [[ -z 172.17.0.2 ]]
remote: + [[ -z 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93 ]]
remote: ++ config_export global
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=global
remote: ++ shift
remote: ++ local APP=
remote: ++ [[ global == \g\l\o\b\a\l ]]
remote: ++ APP=--global
remote: ++ config_sub export --global
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export --global
remote: ++ return 0
remote: + eval 'export CURL_CONNECT_TIMEOUT='\''90'\''
remote: export CURL_TIMEOUT='\''60'\'''
remote: ++ export CURL_CONNECT_TIMEOUT=90
remote: ++ CURL_CONNECT_TIMEOUT=90
remote: ++ export CURL_TIMEOUT=60
remote: ++ CURL_TIMEOUT=60
remote: ++ config_export app testapp
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export testapp
remote: ++ return 0
remote: + eval 'export DOKKU_APP_TYPE='\''herokuish'\'''
remote: ++ export DOKKU_APP_TYPE=herokuish
remote: ++ DOKKU_APP_TYPE=herokuish
remote: ++ is_app_proctype_checks_skipped testapp web
remote: ++ declare 'desc=return true if app'\''s proctype(s) checks are skipped'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local PROCTYPE=web status=false
remote: +++ config_get testapp DOKKU_CHECKS_SKIPPED
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_CHECKS_SKIPPED
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_CHECKS_SKIPPED
remote: +++ true
remote: ++ local DOKKU_CHECKS_SKIPPED=
remote: ++ [[ '' == \_\a\l\l\_ ]]
remote: +++ is_val_in_list web ''
remote: +++ declare 'desc=return true if value (web) is in list () separated by delimiter (); delimiter defaults to comma'
remote: +++ local value=web list= delimiter=,
remote: +++ local IFS=, val_in_list=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: ++ echo false
remote: + [[ false == \t\r\u\e ]]
remote: + local WAIT=5
remote: + local TIMEOUT=30
remote: + local ATTEMPTS=5
remote: ++ mktemp -d /tmp/dokku_CHECKS.XXXXX
remote: + local CHECK_DEPLOY_TMP_WORK_DIR=/tmp/dokku_CHECKS.fFdQV
remote: + docker cp 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93:/app/CHECKS /tmp/dokku_CHECKS.fFdQV
remote: + true
remote: + local FILENAME=/tmp/dokku_CHECKS.fFdQV/CHECKS
remote: + trap 'checks_check_deploy_cleanup $DOKKU_APP_CONTAINER_ID' RETURN INT TERM EXIT
remote: + [[ ! -s /tmp/dokku_CHECKS.fFdQV/CHECKS ]]
remote: + [[ web == \w\e\b ]]
remote: + dokku_log_verbose 'For more efficient zero downtime deployments, create a file CHECKS.'
remote: + declare 'desc=log verbose formatter'
remote: + echo ' For more efficient zero downtime deployments, create a file CHECKS.'
remote: + dokku_log_verbose 'See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples'
remote: + declare 'desc=log verbose formatter'
remote: + echo ' See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples'
remote: + dokku_log_verbose 'CHECKS file not found in container: Running simple container check...'
remote: + declare 'desc=log verbose formatter'
For more efficient zero downtime deployments, create a file CHECKS.
remote: + echo ' CHECKS file not found in container: Running simple container check...'
remote: + rm -rf /tmp/dokku_CHECKS.fFdQV
See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples
CHECKS file not found in container: Running simple container check...
remote: + local DOKKU_DEFAULT_CHECKS_WAIT=10
remote: + dokku_log_info1 'Waiting for 10 seconds ...'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Waiting for 10 seconds ...'
remote: + sleep 10
-----> Waiting for 10 seconds ...
remote: + is_container_running 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + declare 'desc=return 0 if given docker container id is in running state'
remote: + local CID=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: ++ docker inspect -f '{{.State.Running}}' 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + local CONTAINER_STATUS=true
remote: + [[ true == \t\r\u\e ]]
remote: + return 0
remote: ++ docker inspect -f '{{ .RestartCount }}' 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + local container_restarts=0
remote: + [[ 0 -ne 0 ]]
remote: + trap - EXIT
remote: + dokku_log_info1 'Default container check successful!'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Default container check successful!'
remote: + exit 0
-----> Default container check successful!
remote: + trap - INT TERM EXIT
remote: + [[ -n 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93 ]]
remote: + echo 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: + [[ -n 172.17.0.2 ]]
remote: + plugn trigger network-write-ipaddr testapp web 1 172.17.0.2
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + [[ -n 5000 ]]
remote: + plugn trigger network-write-port testapp web 1 5000
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + rm -f /home/dokku/testapp/CONTAINER /home/dokku/testapp/IP /home/dokku/testapp/PORT
remote: + local CONTAINER_INDEX=2
remote: + [[ 2 -le 1 ]]
remote: + [[ 1 == 0 ]]
remote: + local CONTAINER_IDX_OFFSET=2
remote: + local container_state_filetype
remote: + for container_state_filetype in CONTAINER IP PORT
remote: + cd /home/dokku/testapp
remote: + find . -maxdepth 1 -name 'CONTAINER.web.*' -printf '%f\n'
remote: + sort -t . -k 3 -n
remote: + tail -n +2
remote: + xargs rm -f
remote: + for container_state_filetype in CONTAINER IP PORT
remote: + cd /home/dokku/testapp
remote: + find . -maxdepth 1 -name 'IP.web.*' -printf '%f\n'
remote: + xargs rm -f
remote: + tail -n +2
remote: + sort -t . -k 3 -n
remote: + for container_state_filetype in CONTAINER IP PORT
remote: + cd /home/dokku/testapp
remote: + find . -maxdepth 1 -name 'PORT.web.*' -printf '%f\n'
remote: + tail -n +2
remote: + xargs rm -f
remote: + sort -t . -k 3 -n
remote: + read -r line
remote: + [[ -n '' ]]
remote: + dokku_log_info1 'Running post-deploy'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Running post-deploy'
remote: + plugn trigger core-post-deploy testapp 5000 172.17.0.2 ''
-----> Running post-deploy
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + cleanup_container_state testapp 5000 172.17.0.2 ''
remote: + declare 'desc=core post-deploy state cleanup'
remote: + local 'trigger=core-post-deploy cleanup_container_state'
remote: + local APP=testapp
remote: ++ egrep -v '^#' /home/dokku/testapp/DOKKU_SCALE
remote: ++ xargs
remote: ++ awk -F = '{ print $1 }'
remote: + local PROCTYPES=web
remote: ++ find /home/dokku/testapp -maxdepth 1 -name 'CONTAINER.*' -printf '%f\n'
remote: ++ xargs
remote: ++ sort -t . -k 3 -n
remote: + local CONTAINER_FILES=CONTAINER.web.1
remote: + local CONTAINER_FILE
remote: + for CONTAINER_FILE in '$CONTAINER_FILES'
remote: ++ awk -F . '{ print $2 }'
remote: + local CONTAINER_TYPE=web
remote: ++ is_val_in_list web web ' '
remote: ++ declare 'desc=return true if value (web) is in list (web) separated by delimiter ( ); delimiter defaults to comma'
remote: ++ local value=web list=web 'delimiter= '
remote: ++ local 'IFS= ' val_in_list=false
remote: ++ for val in '$list'
remote: ++ [[ web == \w\e\b ]]
remote: ++ val_in_list=true
remote: ++ echo true
remote: + [[ true == \f\a\l\s\e ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + named_containers_core_post_deploy testapp 5000 172.17.0.2 ''
remote: + declare 'desc=names deployed app container is consistent manner'
remote: + local trigger=named_containers_core_post_deploy
remote: + local APP=testapp
remote: + local APP_ROOT=/home/dokku/testapp
remote: + local container
remote: + shopt -s nullglob
remote: + for container in '$APP_ROOT/CONTAINER.*'
remote: ++ echo /home/dokku/testapp/CONTAINER.web.1
remote: ++ sed -r 's/.*CONTAINER\.(.*)/\1/'
remote: + local DYNO=web.1
remote: + local NAME=testapp.web.1
remote: + local CURRENT_CONTAINER_ID=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: ++ docker ps -a -q -f 'name=^.?testapp.web.1$'
remote: ++ xargs
remote: + local PREVIOUS_CIDS=
remote: + [[ -n '' ]]
remote: ++ cat /home/dokku/testapp/CONTAINER.web.1
remote: + local ID=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: ++ docker inspect -f '{{.Name}}' 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: ++ tr -d /
remote: + local CURRENT_NAME=keen_kepler
remote: + [[ -n keen_kepler ]]
remote: + dokku_log_info2_quiet 'renaming container (779208dd325d) keen_kepler to testapp.web.1'
remote: + declare 'desc=log info2 formatter (with quiet option)'
remote: + [[ -z '' ]]
remote: + echo '=====> renaming container (779208dd325d) keen_kepler to testapp.web.1'
remote: + docker rename keen_kepler testapp.web.1
=====> renaming container (779208dd325d) keen_kepler to testapp.web.1
remote: + shopt -u nullglob
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/domains/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/nginx-vhosts/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/proxy/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/ps/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: + source /var/lib/dokku/plugins/available/proxy/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ get_app_proxy_type testapp
remote: ++ declare 'desc=return app proxy type'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp DOKKU_APP_PROXY_TYPE
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_APP_PROXY_TYPE
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_PROXY_TYPE
remote: +++ true
remote: ++ local DOKKU_APP_PROXY_TYPE=
remote: ++ local APP_PROXY_TYPE=nginx
remote: ++ echo nginx
remote: + [[ nginx == \n\g\i\n\x ]]
remote: + nginx_core_post_deploy testapp 5000 172.17.0.2 ''
remote: + declare 'desc=nginx-vhosts core-post-deploy plugin trigger'
remote: + local trigger=nginx_core_post_deploy
remote: + local APP=testapp
remote: + local HAS_NETWORK_CONFIG
remote: ++ plugn trigger network-config-exists testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + HAS_NETWORK_CONFIG=true
remote: + [[ true == \t\r\u\e ]]
remote: ++ is_app_vhost_enabled testapp
remote: ++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp NO_VHOST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp NO_VHOST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: ++ local NO_VHOST=
remote: ++ local APP_VHOST_ENABLED=true
remote: ++ [[ '' == \1 ]]
remote: ++ echo true
remote: + [[ true == \f\a\l\s\e ]]
remote: + [[ ! -f /home/dokku/testapp/VHOST ]]
remote: + domains_setup testapp
remote: + declare 'desc=setup domains to default state'
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP=testapp
remote: + local APP_VHOST_PATH=/home/dokku/testapp/VHOST
remote: + local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ get_ipv4_regex
remote: ++ declare 'desc=returns ipv4 regex'
remote: +++ _ipv4_regex
remote: +++ declare 'desc=ipv4 regex'
remote: +++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: + local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: ++ get_ipv6_regex
remote: ++ declare 'desc=returns ipv6 regex'
remote: +++ _ipv6_regex
remote: +++ declare 'desc=ipv6 regex'
remote: ++++ _ipv4_regex
remote: ++++ declare 'desc=ipv4 regex'
remote: ++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: + local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: ++ get_default_vhosts testapp
remote: ++ declare 'desc=return default vhosts'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: +++ get_ipv4_regex
remote: +++ declare 'desc=returns ipv4 regex'
remote: ++++ _ipv4_regex
remote: ++++ declare 'desc=ipv4 regex'
remote: ++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: ++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: +++ get_ipv6_regex
remote: +++ declare 'desc=returns ipv6 regex'
remote: ++++ _ipv6_regex
remote: ++++ declare 'desc=ipv6 regex'
remote: +++++ _ipv4_regex
remote: +++++ declare 'desc=ipv4 regex'
remote: +++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: ++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: +++ is_global_vhost_enabled
remote: +++ declare 'desc=returns true if we have a valid global vhost set; otherwise returns false'
remote: ++++ get_global_vhosts
remote: ++++ declare 'desc=return global vhosts'
remote: ++++ local GLOBAL_VHOST_FILE=/home/dokku/VHOST
remote: ++++ [[ -f /home/dokku/VHOST ]]
remote: ++++ echo ''
remote: +++ local GLOBAL_VHOSTS=
remote: +++ local GLOBAL_VHOSTS_ENABLED=false
remote: ++++ get_ipv4_regex
remote: ++++ declare 'desc=returns ipv4 regex'
remote: +++++ _ipv4_regex
remote: +++++ declare 'desc=ipv4 regex'
remote: +++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: +++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: ++++ get_ipv6_regex
remote: ++++ declare 'desc=returns ipv6 regex'
remote: +++++ _ipv6_regex
remote: +++++ declare 'desc=ipv6 regex'
remote: ++++++ _ipv4_regex
remote: ++++++ declare 'desc=ipv4 regex'
remote: ++++++ echo '([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++++ local 'RE_IPV4=([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|'
remote: +++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: +++++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}'
remote: ++++ echo '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: +++ local 'RE_IPV6=([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe08:(:[0-9a-fA-F]{1,4}){2,2}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}([0-9]{1,3}[\.]){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){1,4}:([0-9]{1,3}[\.]){3}[0-9]{1,3}$'
remote: +++ read -r GLOBAL_VHOST
remote: +++ is_valid_hostname ''
remote: +++ declare 'desc=return 0 if argument is a valid hostname; else return 1'
remote: +++ local hostname_string=
remote: +++ local 'hostname_regex=^([a-z0-9\*-]+\.)*[a-z0-9\*-]+$'
remote: +++ [[ '' =~ ^([a-z0-9\*-]+\.)*[a-z0-9\*-]+$ ]]
remote: +++ return 1
remote: +++ read -r GLOBAL_VHOST
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local DEFAULT_VHOSTS=
remote: + [[ ! -f /home/dokku/testapp/VHOST ]]
remote: + [[ -n '' ]]
remote: + dokku_log_info2 'no global VHOST set. disabling vhost support'
remote: + declare 'desc=log info2 formatter'
remote: + echo '=====> no global VHOST set. disabling vhost support'
remote: + disable_app_vhost testapp --no-restart
remote: + declare 'desc=disable vhost support for given application'
=====> no global VHOST set. disabling vhost support
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: + local APP_URLS_FILE=/home/dokku/testapp/URLS
remote: + plugn trigger pre-disable-vhost testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/proxy/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + nginx_pre_disable_vhost_trigger testapp
remote: + declare 'desc=unset port prior to vhosts being disabled'
remote: + local trigger=nginx_pre_disable_vhost_trigger
remote: + local APP=testapp
remote: ++ get_app_proxy_type testapp
remote: ++ declare 'desc=return app proxy type'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp DOKKU_APP_PROXY_TYPE
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_APP_PROXY_TYPE
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_APP_PROXY_TYPE
remote: +++ true
remote: ++ local DOKKU_APP_PROXY_TYPE=
remote: ++ local APP_PROXY_TYPE=nginx
remote: ++ echo nginx
remote: + [[ nginx == \n\g\i\n\x ]]
remote: + config_unset --no-restart testapp DOKKU_NGINX_PORT DOKKU_NGINX_SSL_PORT DOKKU_PROXY_PORT_MAP
remote: + declare 'desc=unset value of given config var'
remote: + config_sub unset --no-restart testapp DOKKU_NGINX_PORT DOKKU_NGINX_SSL_PORT DOKKU_PROXY_PORT_MAP
remote: + declare 'desc=executes a config subcommand'
remote: + local name=unset
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/unset config:unset --no-restart testapp DOKKU_NGINX_PORT DOKKU_NGINX_SSL_PORT DOKKU_PROXY_PORT_MAP
-----> Skipping DOKKU_NGINX_PORT, it is not set in the environment
-----> Skipping DOKKU_NGINX_SSL_PORT, it is not set in the environment
-----> Skipping DOKKU_PROXY_PORT_MAP, it is not set in the environment
remote: + [[ -f /home/dokku/testapp/VHOST ]]
remote: + [[ -f /home/dokku/testapp/URLS ]]
remote: + [[ --no-restart == \-\-\n\o\-\r\e\s\t\a\r\t ]]
remote: + local CONFIG_SET_ARGS=--no-restart
remote: + config_set --no-restart testapp NO_VHOST=1
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --no-restart testapp NO_VHOST=1
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --no-restart testapp NO_VHOST=1
-----> Setting config vars
NO_VHOST: 1
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config testapp set NO_VHOST
remote: + local app=testapp
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku/testapp/monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains testapp
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: ++ local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: ++ local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ local GLOBAL_HOSTNAME_PATH=/home/dokku/HOSTNAME
remote: +++ is_app_vhost_enabled testapp
remote: +++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: +++ local APP=testapp
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: ++++ config_get testapp NO_VHOST
remote: ++++ declare 'desc=get value of given config var'
remote: ++++ config_sub get testapp NO_VHOST
remote: ++++ declare 'desc=executes a config subcommand'
remote: ++++ local name=get
remote: ++++ shift
remote: ++++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: +++ local NO_VHOST=1
remote: +++ local APP_VHOST_ENABLED=true
remote: +++ [[ 1 == \1 ]]
remote: +++ local APP_VHOST_ENABLED=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local port=
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: +++ config_get testapp MONIT_CONTENT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_CONTENT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_CONTENT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local content=
remote: +++ config_get testapp MONIT_REQUEST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_REQUEST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_REQUEST
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local request=
remote: +++ config_get testapp MONIT_ALERT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_ALERT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ALERT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local alert=
remote: +++ config_get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_TIMEOUT
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_timeout=
remote: +++ config_get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_cycles=
remote: +++ config_get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_restarts=
remote: +++ config_get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_cycles=
remote: ++ config_get testapp MONIT_ENABLED
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp MONIT_ENABLED
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ENABLED
remote: ++ true
remote: + local monit_enabled=
remote: + sigil -f /var/lib/dokku/plugins/available/monit/templates/monit.sigil APP=testapp DOMAIN= ALERT= CONTENT= REQUEST= RESTART_TIMEOUT= RESTART_CYCLES= UNMONITOR_RESTARTS= UNMONITOR_CYCLES= PORT= SCHEME=http SSL=false DOKKU_BIN=/usr/bin/dokku MONIT_ENABLED= ADDRESS=localhost
remote: + monit_reload
remote: + monit_cmd reload
remote: + monit reload
remote: Cannot open the control file '/etc/monit/monitrc' -- Permission denied
remote: ! Failure while triggering post-config-update: exit status 1
remote: + nginx_build_config testapp
remote: + declare 'desc=build nginx config to proxy app containers using sigil'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local DOKKU_APP_LISTEN_PORT=
remote: + local DOKKU_APP_LISTEN_IP=
remote: + local VHOST_PATH=/home/dokku/testapp/VHOST
remote: + local URLS_PATH=/home/dokku/testapp/URLS
remote: + local NGINX_TEMPLATE_NAME=nginx.conf.sigil
remote: + local DEFAULT_NGINX_TEMPLATE=/var/lib/dokku/plugins/available/nginx-vhosts/templates/nginx.conf.sigil
remote: + local NGINX_TEMPLATE=/var/lib/dokku/plugins/available/nginx-vhosts/templates/nginx.conf.sigil
remote: + local SCHEME=http
remote: + local NGINX_TEMPLATE_SOURCE=built-in
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: ++ get_app_raw_tcp_ports testapp
remote: ++ declare 'desc=extracts raw tcp port numbers from DOCKERFILE_PORTS config variable'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DOCKERFILE_PORTS
remote: ++ local DOCKERFILE_PORTS=
remote: +++ echo ''
remote: +++ xargs
remote: ++ local raw_tcp_ports=
remote: ++ echo ''
remote: + local RAW_TCP_PORTS=
remote: + local DOKKU_APP_LISTENERS
remote: ++ is_app_vhost_enabled testapp
remote: ++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp NO_VHOST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp NO_VHOST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: ++ local NO_VHOST=1
remote: ++ local APP_VHOST_ENABLED=true
remote: ++ [[ 1 == \1 ]]
remote: ++ local APP_VHOST_ENABLED=false
remote: ++ echo false
remote: + local IS_APP_VHOST_ENABLED=false
remote: ++ is_app_proxy_enabled testapp
remote: ++ declare 'desc=return true if proxy is enabled; otherwise return false'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP_PROXY_ENABLED=true
remote: +++ config_get testapp DOKKU_DISABLE_PROXY
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DISABLE_PROXY
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DISABLE_PROXY
remote: ++ local DOKKU_DISABLE_PROXY=
remote: ++ [[ -n '' ]]
remote: ++ echo true
remote: + [[ true == \t\r\u\e ]]
remote: + [[ -z '' ]]
remote: + [[ -z '' ]]
remote: ++ plugn trigger network-get-listeners testapp
remote: ++ xargs
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + DOKKU_APP_LISTENERS=172.17.0.2:5000
remote: + configure_nginx_ports testapp
remote: + declare 'desc=configure nginx listening ports'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: ++ get_app_raw_tcp_ports testapp
remote: ++ declare 'desc=extracts raw tcp port numbers from DOCKERFILE_PORTS config variable'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DOCKERFILE_PORTS
remote: ++ local DOCKERFILE_PORTS=
remote: +++ echo ''
remote: +++ xargs
remote: ++ local raw_tcp_ports=
remote: ++ echo ''
remote: + local RAW_TCP_PORTS=
remote: ++ config_get testapp DOKKU_NGINX_PORT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_NGINX_PORT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: + local DOKKU_NGINX_PORT=
remote: ++ config_get testapp DOKKU_NGINX_SSL_PORT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_NGINX_SSL_PORT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_SSL_PORT
remote: + local DOKKU_NGINX_SSL_PORT=
remote: ++ config_get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_PROXY_PORT_MAP
remote: + local DOKKU_PROXY_PORT_MAP=
remote: ++ is_app_vhost_enabled testapp
remote: ++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp NO_VHOST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp NO_VHOST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: ++ local NO_VHOST=1
remote: ++ local APP_VHOST_ENABLED=true
remote: ++ [[ 1 == \1 ]]
remote: ++ local APP_VHOST_ENABLED=false
remote: ++ echo false
remote: + local IS_APP_VHOST_ENABLED=false
remote: + local UPSTREAM_PORT=5000
remote: + [[ -z '' ]]
remote: + [[ -z '' ]]
remote: + [[ false == \f\a\l\s\e ]]
remote: + dokku_log_info1 'no nginx port set. setting to random open high port'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> no nginx port set. setting to random open high port'
-----> no nginx port set. setting to random open high port
remote: ++ get_available_port
remote: ++ declare 'desc=returns first currently unused port > 1024'
remote: ++ true
remote: +++ shuf -i 1025-65535 -n 1
remote: ++ local port=45300
remote: ++ nc -z 0.0.0.0 45300
remote: ++ echo 45300
remote: ++ return 0
remote: + local NGINX_PORT=45300
remote: + config_set --no-restart testapp DOKKU_NGINX_PORT=45300
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --no-restart testapp DOKKU_NGINX_PORT=45300
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --no-restart testapp DOKKU_NGINX_PORT=45300
-----> Setting config vars
DOKKU_NGINX_PORT: 45300
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config testapp set DOKKU_NGINX_PORT
remote: + local app=testapp
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku/testapp/monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains testapp
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: ++ local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: ++ local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ local GLOBAL_HOSTNAME_PATH=/home/dokku/HOSTNAME
remote: +++ is_app_vhost_enabled testapp
remote: +++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: +++ local APP=testapp
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: ++++ config_get testapp NO_VHOST
remote: ++++ declare 'desc=get value of given config var'
remote: ++++ config_sub get testapp NO_VHOST
remote: ++++ declare 'desc=executes a config subcommand'
remote: ++++ local name=get
remote: ++++ shift
remote: ++++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: +++ local NO_VHOST=1
remote: +++ local APP_VHOST_ENABLED=true
remote: +++ [[ 1 == \1 ]]
remote: +++ local APP_VHOST_ENABLED=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: ++ escape_number 45300
remote: ++ echo 45300
remote: + local port=45300
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: +++ config_get testapp MONIT_CONTENT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_CONTENT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_CONTENT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local content=
remote: +++ config_get testapp MONIT_REQUEST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_REQUEST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_REQUEST
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local request=
remote: +++ config_get testapp MONIT_ALERT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_ALERT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ALERT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local alert=
remote: +++ config_get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_TIMEOUT
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_timeout=
remote: +++ config_get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_cycles=
remote: +++ config_get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_restarts=
remote: +++ config_get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_cycles=
remote: ++ config_get testapp MONIT_ENABLED
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp MONIT_ENABLED
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ENABLED
remote: ++ true
remote: + local monit_enabled=
remote: + sigil -f /var/lib/dokku/plugins/available/monit/templates/monit.sigil APP=testapp DOMAIN= ALERT= CONTENT= REQUEST= RESTART_TIMEOUT= RESTART_CYCLES= UNMONITOR_RESTARTS= UNMONITOR_CYCLES= PORT=45300 SCHEME=http SSL=false DOKKU_BIN=/usr/bin/dokku MONIT_ENABLED= ADDRESS=localhost
remote: + monit_reload
remote: + monit_cmd reload
remote: + monit reload
remote: Cannot open the control file '/etc/monit/monitrc' -- Permission denied
remote: ! Failure while triggering post-config-update: exit status 1
remote: + [[ -z '' ]]
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: + [[ -z '' ]]
remote: + [[ -n '' ]]
remote: + local NGINX_PORT=45300
remote: + local NGINX_SSL_PORT=
remote: + [[ -f /home/dokku/testapp/PORT.web.1 ]]
remote: + local UPSTREAM_PORT=5000
remote: + [[ -n 45300 ]]
remote: + [[ -n '' ]]
remote: + [[ -n 45300 ]]
remote: + local 'PROXY_PORT_MAP+= http:45300:5000 '
remote: + [[ -n http:45300:5000 ]]
remote: ++ xargs
remote: ++ echo ' http:45300:5000 '
remote: + local PROXY_PORT_MAP=http:45300:5000
remote: +++ remove_val_from_list '' '' ' '
remote: +++ declare 'desc=remove value () from list () separated by delimiter ( ) (delimiter defaults to comma) and return list'
remote: +++ local value= list= 'delimiter= '
remote: +++ list=
remote: +++ list=
remote: +++ list=
remote: +++ list=
remote: +++ echo ''
remote: ++ merge_dedupe_list '' ' '
remote: ++ declare 'desc=combine lists () separated by delimiter ( ) (delimiter defaults to comma), dedupe and return list'
remote: ++ local input_lists= 'delimiter= '
remote: +++ tr ' ' '
remote: '
remote: +++ xargs
remote: +++ uniq
remote: +++ sort
remote: ++ local merged_list=
remote: ++ echo ''
remote: + local 'PROXY_PORT_MAP+= '
remote: + config_set --no-restart testapp 'DOKKU_PROXY_PORT_MAP=http:45300:5000 '
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --no-restart testapp 'DOKKU_PROXY_PORT_MAP=http:45300:5000 '
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --no-restart testapp 'DOKKU_PROXY_PORT_MAP=http:45300:5000 '
-----> Setting config vars
DOKKU_PROXY_PORT_MAP: http:45300:5000
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config testapp set DOKKU_PROXY_PORT_MAP
remote: + local app=testapp
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku/testapp/monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains testapp
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: ++ local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: ++ local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ local GLOBAL_HOSTNAME_PATH=/home/dokku/HOSTNAME
remote: +++ is_app_vhost_enabled testapp
remote: +++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: +++ local APP=testapp
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: ++++ config_get testapp NO_VHOST
remote: ++++ declare 'desc=get value of given config var'
remote: ++++ config_sub get testapp NO_VHOST
remote: ++++ declare 'desc=executes a config subcommand'
remote: ++++ local name=get
remote: ++++ shift
remote: ++++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: +++ local NO_VHOST=1
remote: +++ local APP_VHOST_ENABLED=true
remote: +++ [[ 1 == \1 ]]
remote: +++ local APP_VHOST_ENABLED=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: ++ escape_number 45300
remote: ++ echo 45300
remote: + local port=45300
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: +++ config_get testapp MONIT_CONTENT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_CONTENT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_CONTENT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local content=
remote: +++ config_get testapp MONIT_REQUEST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_REQUEST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_REQUEST
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local request=
remote: +++ config_get testapp MONIT_ALERT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_ALERT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ALERT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local alert=
remote: +++ config_get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_TIMEOUT
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_timeout=
remote: +++ config_get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_cycles=
remote: +++ config_get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_restarts=
remote: +++ config_get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_cycles=
remote: ++ config_get testapp MONIT_ENABLED
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp MONIT_ENABLED
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ENABLED
remote: ++ true
remote: + local monit_enabled=
remote: + sigil -f /var/lib/dokku/plugins/available/monit/templates/monit.sigil APP=testapp DOMAIN= ALERT= CONTENT= REQUEST= RESTART_TIMEOUT= RESTART_CYCLES= UNMONITOR_RESTARTS= UNMONITOR_CYCLES= PORT=45300 SCHEME=http SSL=false DOKKU_BIN=/usr/bin/dokku MONIT_ENABLED= ADDRESS=localhost
remote: + monit_reload
remote: + monit_cmd reload
remote: + monit reload
remote: Cannot open the control file '/etc/monit/monitrc' -- Permission denied
remote: ! Failure while triggering post-config-update: exit status 1
remote: ++ config_get testapp DOKKU_NGINX_PORT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_NGINX_PORT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: + local NGINX_PORT=45300
remote: ++ config_get testapp DOKKU_NGINX_SSL_PORT
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_NGINX_SSL_PORT
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_SSL_PORT
remote: + local NGINX_SSL_PORT=
remote: ++ config_get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_PROXY_PORT_MAP
remote: + local 'PROXY_PORT_MAP=http:45300:5000 '
remote: + local PORT_MAP
remote: + for PORT_MAP in '$PROXY_PORT_MAP'
remote: ++ awk -F : '{ print $3 }'
remote: + local PROXY_UPSTREAM_PORT=5000
remote: ++ is_val_in_list 5000 '' ' '
remote: ++ declare 'desc=return true if value (5000) is in list () separated by delimiter ( ); delimiter defaults to comma'
remote: ++ local value=5000 list= 'delimiter= '
remote: ++ local 'IFS= ' val_in_list=false
remote: ++ echo false
remote: + [[ false == \f\a\l\s\e ]]
remote: + local 'PROXY_UPSTREAM_PORTS+=5000 '
remote: ++ echo '5000 '
remote: ++ xargs
remote: + local PROXY_UPSTREAM_PORTS=5000
remote: ++ mktemp -d /tmp/dokku_nginx_template.XXXXX
remote: + local NGINX_BUILD_CONFIG_TMP_WORK_DIR=/tmp/dokku_nginx_template.dRYdl
remote: ++ mktemp --tmpdir=/tmp/dokku_nginx_template.dRYdl nginx.conf.XXXXXX
remote: + local NGINX_CONF=/tmp/dokku_nginx_template.dRYdl/nginx.conf.P6th3u
remote: + local CUSTOM_NGINX_TEMPLATE=/tmp/dokku_nginx_template.dRYdl/nginx.conf.sigil
remote: + trap 'rm -rf $NGINX_CONF $NGINX_BUILD_CONFIG_TMP_WORK_DIR > /dev/null' RETURN INT TERM EXIT
remote: + get_custom_nginx_template testapp /tmp/dokku_nginx_template.dRYdl/nginx.conf.sigil
remote: + declare 'desc=attempts to copy custom nginx template from app image'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local DESTINATION=/tmp/dokku_nginx_template.dRYdl/nginx.conf.sigil
remote: ++ get_running_image_tag testapp
remote: ++ declare 'desc=retrieve current image tag for a given app. returns empty string if no deployed containers are found'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ CIDS=($(get_app_container_ids "$APP"))
remote: +++ get_app_container_ids testapp
remote: +++ declare 'desc=returns list of docker container ids for given app and optional container_type'
remote: +++ local APP=testapp
remote: +++ local CONTAINER_TYPE=
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: +++ [[ -f /home/dokku/testapp/CONTAINER ]]
remote: +++ [[ -n '' ]]
remote: +++ local 'CONTAINER_PATTERN=/home/dokku/testapp/CONTAINER.*'
remote: +++ shopt -s nullglob
remote: +++ local DOKKU_CID_FILE
remote: +++ for DOKKU_CID_FILE in '$CONTAINER_PATTERN'
remote: +++ local 'DOKKU_CIDS+= '
remote: +++ local DOKKU_CIDS+=779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: +++ local 'DOKKU_CIDS+= '
remote: +++ shopt -u nullglob
remote: +++ echo ' 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93 '
remote: ++ local CIDS
remote: +++ docker inspect -f '{{ .Config.Image }}' 779208dd325d3a4327b79ca39596b6623413239321c4525704455c9d25701d93
remote: +++ awk -F: '{ print $2 }'
remote: ++ local RUNNING_IMAGE_TAG=latest
remote: ++ echo latest
remote: + local IMAGE_TAG=latest
remote: ++ get_deploying_app_image_name testapp latest
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=latest
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z latest ]]
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + local IMAGE=dokku/testapp:latest
remote: + local NGINX_TEMPLATE_NAME=nginx.conf.sigil
remote: + copy_from_image dokku/testapp:latest nginx.conf.sigil /tmp/dokku_nginx_template.dRYdl/nginx.conf.sigil
remote: + [[ -f /tmp/dokku_nginx_template.dRYdl/nginx.conf.sigil ]]
remote: ++ get_app_domains testapp
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: ++ local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: ++ local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ local GLOBAL_HOSTNAME_PATH=/home/dokku/HOSTNAME
remote: +++ is_app_vhost_enabled testapp
remote: +++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: +++ local APP=testapp
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: ++++ config_get testapp NO_VHOST
remote: ++++ declare 'desc=get value of given config var'
remote: ++++ config_sub get testapp NO_VHOST
remote: ++++ declare 'desc=executes a config subcommand'
remote: ++++ local name=get
remote: ++++ shift
remote: ++++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: +++ local NO_VHOST=1
remote: +++ local APP_VHOST_ENABLED=true
remote: +++ [[ 1 == \1 ]]
remote: +++ local APP_VHOST_ENABLED=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local NONSSL_VHOSTS=
remote: ++ echo ''
remote: ++ xargs
remote: + local NOSSL_SERVER_NAME=
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: + local NGINX_LOCATION NGINX_VERSION SPDY_SUPPORTED HTTP2_SUPPORTED
remote: ++ get_nginx_location
remote: ++ declare 'desc=check that nginx is at the expected location and return it'
remote: ++ local NGINX_LOCATION
remote: +++ which nginx
remote: ++ NGINX_LOCATION=/usr/sbin/nginx
remote: ++ [[ -z /usr/sbin/nginx ]]
remote: ++ [[ ! -x /usr/sbin/nginx ]]
remote: ++ echo /usr/sbin/nginx
remote: + NGINX_LOCATION=/usr/sbin/nginx
remote: + [[ -z /usr/sbin/nginx ]]
remote: ++ /usr/sbin/nginx -v
remote: ++ cut -d/ -f 2
remote: + NGINX_VERSION='1.10.3 (Ubuntu)'
remote: ++ is_spdy_enabled '1.10.3 (Ubuntu)'
remote: ++ declare 'desc=detects whether the installed nginx version has spdy support'
remote: ++ local 'NGINX_VERSION=1.10.3 (Ubuntu)'
remote: ++ local MAJOR_VERSION MINOR_VERSION PATCH_VERSION
remote: ++ local HAS_SUPPORT=true
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[1]}'
remote: ++ MAJOR_VERSION=1
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[2]}'
remote: ++ MINOR_VERSION=10
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[3]}'
remote: ++ PATCH_VERSION='3 (Ubuntu)'
remote: ++ [[ 1 -ge 2 ]]
remote: ++ [[ 1 -eq 1 ]]
remote: ++ [[ 10 -ge 10 ]]
remote: ++ HAS_SUPPORT=false
remote: ++ echo false
remote: + SPDY_SUPPORTED=false
remote: ++ is_http2_enabled '1.10.3 (Ubuntu)'
remote: ++ declare 'desc=detects whether the installed nginx version has http2 support'
remote: ++ local 'NGINX_VERSION=1.10.3 (Ubuntu)'
remote: ++ local MAJOR_VERSION MINOR_VERSION PATCH_VERSION
remote: ++ local HAS_SUPPORT=false
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[1]}'
remote: ++ MAJOR_VERSION=1
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[2]}'
remote: ++ MINOR_VERSION=10
remote: +++ echo '1.10.3 (Ubuntu)'
remote: +++ awk '{split($0,a,"."); print a[3]}'
remote: ++ PATCH_VERSION='3 (Ubuntu)'
remote: ++ [[ 1 -ge 2 ]]
remote: ++ [[ 1 -eq 1 ]]
remote: ++ [[ 10 -eq 11 ]]
remote: ++ [[ 10 -ge 12 ]]
remote: ++ echo false
remote: + HTTP2_SUPPORTED=false
remote: ++ echo 'http:45300:5000 '
remote: ++ xargs
remote: + PROXY_PORT_MAP=http:45300:5000
remote: ++ config_export app testapp
remote: ++ declare 'desc=returns export command for config variable of specified type (app/global)'
remote: ++ local CONFIG_TYPE=app
remote: ++ shift
remote: ++ local APP=testapp
remote: ++ [[ app == \g\l\o\b\a\l ]]
remote: ++ shift
remote: ++ config_sub export testapp
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=export
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/export config:export testapp
remote: ++ return 0
remote: + eval 'export DOKKU_APP_TYPE='\''herokuish'\''
remote: export DOKKU_NGINX_PORT='\''45300'\''
remote: export DOKKU_PROXY_PORT_MAP='\''http:45300:5000 '\''
remote: export NO_VHOST='\''1'\'''
remote: ++ export DOKKU_APP_TYPE=herokuish
remote: ++ DOKKU_APP_TYPE=herokuish
remote: ++ export DOKKU_NGINX_PORT=45300
remote: ++ DOKKU_NGINX_PORT=45300
remote: ++ export 'DOKKU_PROXY_PORT_MAP=http:45300:5000 '
remote: ++ DOKKU_PROXY_PORT_MAP='http:45300:5000 '
remote: ++ export NO_VHOST=1
remote: ++ NO_VHOST=1
remote: + SIGIL_PARAMS=(-f $NGINX_TEMPLATE APP="$APP" DOKKU_ROOT="$DOKKU_ROOT" NOSSL_SERVER_NAME="$NOSSL_SERVER_NAME" DOKKU_APP_LISTENERS="$DOKKU_APP_LISTENERS" DOKKU_LIB_ROOT="$DOKKU_LIB_ROOT" PASSED_LISTEN_IP_PORT="$PASSED_LISTEN_IP_PORT" SPDY_SUPPORTED="$SPDY_SUPPORTED" HTTP2_SUPPORTED="$HTTP2_SUPPORTED" DOKKU_APP_LISTEN_PORT="$DOKKU_APP_LISTEN_PORT" DOKKU_APP_LISTEN_IP="$DOKKU_APP_LISTEN_IP" APP_SSL_PATH="$APP_SSL_PATH" SSL_INUSE="$SSL_INUSE" SSL_SERVER_NAME="$SSL_SERVER_NAME" NGINX_PORT="$NGINX_PORT" NGINX_SSL_PORT="$NGINX_SSL_PORT" RAW_TCP_PORTS="$RAW_TCP_PORTS" PROXY_PORT_MAP="$PROXY_PORT_MAP" PROXY_UPSTREAM_PORTS="$PROXY_UPSTREAM_PORTS")
remote: + local SIGIL_PARAMS
remote: + xargs -i echo '-----> Configuring {}...(using built-in template)'
remote: ++ echo '' ''
remote: ++ tr ' ' '\n'
remote: ++ sort -u
remote: + cat -s
remote: + sigil -f /var/lib/dokku/plugins/available/nginx-vhosts/templates/nginx.conf.sigil APP=testapp DOKKU_ROOT=/home/dokku NOSSL_SERVER_NAME= DOKKU_APP_LISTENERS=172.17.0.2:5000 DOKKU_LIB_ROOT=/var/lib/dokku PASSED_LISTEN_IP_PORT= SPDY_SUPPORTED=false HTTP2_SUPPORTED=false DOKKU_APP_LISTEN_PORT= DOKKU_APP_LISTEN_IP= APP_SSL_PATH=/home/dokku/testapp/tls SSL_INUSE= SSL_SERVER_NAME= NGINX_PORT=45300 NGINX_SSL_PORT= RAW_TCP_PORTS= PROXY_PORT_MAP=http:45300:5000 PROXY_UPSTREAM_PORTS=5000
remote: + is_deployed testapp
remote: + declare 'desc=return 0 if given app has a running container'
remote: + local APP=testapp
remote: + [[ -f /home/dokku/testapp/CONTAINER ]]
remote: ++ ls /home/dokku/testapp/CONTAINER.web.1
remote: ++ echo 0
remote: + [[ 0 -eq 0 ]]
remote: + return 0
remote: + dokku_log_info1 'Creating http nginx.conf'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Creating http nginx.conf'
remote: + mv /tmp/dokku_nginx_template.dRYdl/nginx.conf.P6th3u /home/dokku/testapp/nginx.conf
-----> Creating http nginx.conf
remote: + is_deployed testapp
remote: + declare 'desc=return 0 if given app has a running container'
remote: + local APP=testapp
remote: + [[ -f /home/dokku/testapp/CONTAINER ]]
remote: ++ ls /home/dokku/testapp/CONTAINER.web.1
remote: ++ echo 0
remote: + [[ 0 -eq 0 ]]
remote: + return 0
remote: + dokku_log_info1 'Running nginx-pre-reload'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Running nginx-pre-reload'
remote: + plugn trigger nginx-pre-reload testapp '' ''
-----> Running nginx-pre-reload
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + dokku_log_verbose 'Reloading nginx'
remote: + declare 'desc=log verbose formatter'
remote: + echo ' Reloading nginx'
remote: + validate_nginx
Reloading nginx
remote: + declare 'desc=validate entire nginx config'
remote: + local NGINX_LOCATION
remote: ++ get_nginx_location
remote: ++ declare 'desc=check that nginx is at the expected location and return it'
remote: ++ local NGINX_LOCATION
remote: +++ which nginx
remote: ++ NGINX_LOCATION=/usr/sbin/nginx
remote: ++ [[ -z /usr/sbin/nginx ]]
remote: ++ [[ ! -x /usr/sbin/nginx ]]
remote: ++ echo /usr/sbin/nginx
remote: + NGINX_LOCATION=/usr/sbin/nginx
remote: + [[ -z /usr/sbin/nginx ]]
remote: + set +e
remote: + sudo /usr/sbin/nginx -t
remote: + local exit_code=0
remote: + set -e
remote: + [[ 0 -ne 0 ]]
remote: + restart_nginx
remote: + declare 'desc=restart nginx for given distros'
remote: + case "$DOKKU_DISTRO" in
remote: + sudo /etc/init.d/nginx reload
remote: + [[ -n '' ]]
remote: + [[ -n '' ]]
remote: ++ rm -rf /tmp/dokku_nginx_template.dRYdl/nginx.conf.P6th3u /tmp/dokku_nginx_template.dRYdl
remote: ++ rm -rf
remote: + rm -rf
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/ps/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + ps_core_post_deploy testapp 5000 172.17.0.2 ''
remote: + declare 'desc=ps core-post-deploy plugin trigger'
remote: + local trigger=ps_core_post_deploy
remote: + local APP=testapp
remote: + remove_procfile testapp
remote: + declare 'desc=removes DOKKU_PROCFILE'
remote: + local APP=testapp
remote: + local DOKKU_PROCFILE=/home/dokku/testapp/DOKKU_PROCFILE
remote: + [[ -f /home/dokku/testapp/DOKKU_PROCFILE ]]
remote: + rm -f /home/dokku/testapp/DOKKU_PROCFILE
remote: + config_set --no-restart testapp DOKKU_APP_RESTORE=1
remote: + declare 'desc=set value of given config var'
remote: + config_sub set --no-restart testapp DOKKU_APP_RESTORE=1
remote: + declare 'desc=executes a config subcommand'
remote: + local name=set
remote: + shift
remote: + /var/lib/dokku/plugins/available/config/subcommands/set config:set --no-restart testapp DOKKU_APP_RESTORE=1
-----> Setting config vars
DOKKU_APP_RESTORE: 1
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + source /var/lib/dokku/plugins/available/monit/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/domains/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ source /var/lib/dokku/plugins/available/certs/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: +++ cd /var/lib/dokku/plugins/available/monit
remote: +++ pwd
remote: ++ source /var/lib/dokku/plugins/available/monit/common-functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + monit_build_app_config testapp set DOKKU_APP_RESTORE
remote: + local app=testapp
remote: ++ dirname /var/lib/dokku/plugins/available/monit/functions
remote: + local plugin_path=/var/lib/dokku/plugins/available/monit
remote: + local dokku_bin=/usr/bin/dokku
remote: + local template_file=/var/lib/dokku/plugins/available/monit/templates/monit.sigil
remote: + local monit_config_file=/home/dokku/testapp/monitrc
remote: + domains=($(get_app_domains "$app"))
remote: ++ get_app_domains testapp
remote: ++ declare 'desc=return app domains'
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP=testapp
remote: ++ local APP_VHOST_FILE=/home/dokku/testapp/VHOST
remote: ++ local GLOBAL_VHOST_PATH=/home/dokku/VHOST
remote: ++ local GLOBAL_HOSTNAME_PATH=/home/dokku/HOSTNAME
remote: +++ is_app_vhost_enabled testapp
remote: +++ declare 'desc=returns true or false if vhost support is enabled for a given application'
remote: +++ source /var/lib/dokku/plugins/available/config/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++++ set -eo pipefail
remote: +++++ [[ -n 1 ]]
remote: +++++ set -x
remote: +++ local APP=testapp
remote: +++ verify_app_name testapp
remote: +++ declare 'desc=verify app name format and app existence'
remote: +++ local APP=testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ [[ ! -d /home/dokku/testapp ]]
remote: +++ return 0
remote: ++++ config_get testapp NO_VHOST
remote: ++++ declare 'desc=get value of given config var'
remote: ++++ config_sub get testapp NO_VHOST
remote: ++++ declare 'desc=executes a config subcommand'
remote: ++++ local name=get
remote: ++++ shift
remote: ++++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp NO_VHOST
remote: +++ local NO_VHOST=1
remote: +++ local APP_VHOST_ENABLED=true
remote: +++ [[ 1 == \1 ]]
remote: +++ local APP_VHOST_ENABLED=false
remote: +++ echo false
remote: ++ [[ false == \t\r\u\e ]]
remote: + local domains
remote: ++ escape_domain
remote: ++ echo ''
remote: + local domain=
remote: + local address=localhost
remote: + local ssl=false
remote: + local scheme=http
remote: +++ config_get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_NGINX_PORT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_NGINX_PORT
remote: ++ escape_number 45300
remote: ++ echo 45300
remote: + local port=45300
remote: + is_ssl_enabled testapp
remote: + declare 'desc=returns 0 if ssl is enabled for given app'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_SSL_PATH=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: + return 1
remote: +++ config_get testapp MONIT_CONTENT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_CONTENT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_CONTENT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local content=
remote: +++ config_get testapp MONIT_REQUEST
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_REQUEST
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_REQUEST
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local request=
remote: +++ config_get testapp MONIT_ALERT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_ALERT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ALERT
remote: +++ true
remote: ++ escape_string ''
remote: ++ echo ''
remote: + local alert=
remote: +++ config_get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_TIMEOUT
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_TIMEOUT
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_timeout=
remote: +++ config_get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_RESTART_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_RESTART_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local restart_cycles=
remote: +++ config_get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_RESTARTS
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_restarts=
remote: +++ config_get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp MONIT_UNMONITOR_CYCLES
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_UNMONITOR_CYCLES
remote: +++ true
remote: ++ escape_number ''
remote: ++ echo ''
remote: + local unmonitor_cycles=
remote: ++ config_get testapp MONIT_ENABLED
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp MONIT_ENABLED
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp MONIT_ENABLED
remote: ++ true
remote: + local monit_enabled=
remote: + sigil -f /var/lib/dokku/plugins/available/monit/templates/monit.sigil APP=testapp DOMAIN= ALERT= CONTENT= REQUEST= RESTART_TIMEOUT= RESTART_CYCLES= UNMONITOR_RESTARTS= UNMONITOR_CYCLES= PORT=45300 SCHEME=http SSL=false DOKKU_BIN=/usr/bin/dokku MONIT_ENABLED= ADDRESS=localhost
remote: + monit_reload
remote: + monit_cmd reload
remote: + monit reload
remote: Cannot open the control file '/etc/monit/monitrc' -- Permission denied
remote: ! Failure while triggering post-config-update: exit status 1
remote: + plugn trigger post-deploy testapp 5000 172.17.0.2 ''
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/core-plugins/available/00_dokku-standard/exec-app-json-scripts
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + exec_app_json_scripts testapp 5000 172.17.0.2 ''
remote: + declare 'desc=core app.json scripts execution'
remote: + local 'trigger=post-deploy app_json_scripts'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: + local PHASE_SCRIPT_KEY=postdeploy
remote: + dokku_log_info1 'Attempting to run scripts.dokku.postdeploy from app.json (if defined)'
remote: + declare 'desc=log info1 formatter'
remote: + echo '-----> Attempting to run scripts.dokku.postdeploy from app.json (if defined)'
-----> Attempting to run scripts.dokku.postdeploy from app.json (if defined)
remote: + execute_script testapp '' postdeploy
remote: + declare 'desc=executes appropriate phase script key from app.json'
remote: + local APP=testapp
remote: + local IMAGE_TAG=
remote: + local PHASE_SCRIPT_KEY=postdeploy
remote: + local IMAGE id
remote: ++ get_deploying_app_image_name testapp ''
remote: ++ declare 'desc=return deploying image identifier for a given app, tag tuple. validate if tag is presented'
remote: ++ local APP=testapp
remote: ++ local IMAGE_TAG=
remote: ++ IMAGE_REPO=
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: +++ plugn trigger deployed-app-repository testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local IMAGE_REMOTE_REPOSITORY=
remote: +++ plugn trigger deployed-app-image-tag testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_TAG=
remote: +++ plugn trigger deployed-app-image-repo testapp
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: ++ local NEW_IMAGE_REPO=
remote: ++ [[ -n '' ]]
remote: ++ [[ -n '' ]]
remote: ++ [[ -z '' ]]
remote: +++ get_app_image_repo testapp
remote: +++ declare 'desc=central definition of image repo pattern'
remote: +++ local APP=testapp
remote: +++ local IMAGE_REPO=dokku/testapp
remote: +++ is_valid_app_name testapp
remote: +++ declare 'desc=verify app name format'
remote: +++ local APP=testapp
remote: +++ [[ ! -n testapp ]]
remote: +++ [[ ! testapp =~ ^[a-z].* ]]
remote: +++ return 0
remote: +++ echo dokku/testapp
remote: ++ IMAGE_REPO=dokku/testapp
remote: ++ [[ -z '' ]]
remote: ++ IMAGE_TAG=latest
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ verify_image dokku/testapp:latest
remote: ++ declare 'desc=verify image existence'
remote: ++ local IMAGE=dokku/testapp:latest
remote: ++ docker inspect dokku/testapp:latest
remote: ++ return 0
remote: ++ echo dokku/testapp:latest
remote: + IMAGE=dokku/testapp:latest
remote: ++ get_phase_script dokku/testapp:latest postdeploy
remote: + local SCRIPT_CMD=
remote: + [[ -n '' ]]
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + [[ ! -n '' ]]
remote: + [[ -n '' ]]
remote: + dokku_log_info2 'Application deployed:'
remote: + declare 'desc=log info2 formatter'
remote: + echo '=====> Application deployed:'
=====> Application deployed:
remote: + get_app_urls urls testapp
remote: + sed 's/^/ /'
remote: + declare 'desc=print an app'\''s available urls'
remote: + source /var/lib/dokku/plugins/available/certs/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/config/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/domains/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + source /var/lib/dokku/plugins/available/proxy/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: ++ get_app_raw_tcp_ports testapp
remote: ++ declare 'desc=extracts raw tcp port numbers from DOCKERFILE_PORTS config variable'
remote: ++ source /var/lib/dokku/plugins/available/config/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: +++ source /var/lib/dokku/core-plugins/available/common/functions
remote: ++++ set -eo pipefail
remote: ++++ [[ -n 1 ]]
remote: ++++ set -x
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: +++ config_get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DOCKERFILE_PORTS
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DOCKERFILE_PORTS
remote: ++ local DOCKERFILE_PORTS=
remote: +++ echo ''
remote: +++ xargs
remote: ++ local raw_tcp_ports=
remote: ++ echo ''
remote: + local RAW_TCP_PORTS=
remote: + local URLS_FILE=/home/dokku/testapp/URLS
remote: ++ config_get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=get value of given config var'
remote: ++ config_sub get testapp DOKKU_PROXY_PORT_MAP
remote: ++ declare 'desc=executes a config subcommand'
remote: ++ local name=get
remote: ++ shift
remote: ++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_PROXY_PORT_MAP
remote: + local 'DOKKU_PROXY_PORT_MAP=http:45300:5000 '
remote: + [[ -s /home/dokku/testapp/URLS ]]
remote: + local SCHEME=http
remote: + local SSL=/home/dokku/testapp/tls
remote: + [[ -e /home/dokku/testapp/tls/server.crt ]]
remote: ++ is_app_proxy_enabled testapp
remote: ++ declare 'desc=return true if proxy is enabled; otherwise return false'
remote: ++ local APP=testapp
remote: ++ verify_app_name testapp
remote: ++ declare 'desc=verify app name format and app existence'
remote: ++ local APP=testapp
remote: ++ is_valid_app_name testapp
remote: ++ declare 'desc=verify app name format'
remote: ++ local APP=testapp
remote: ++ [[ ! -n testapp ]]
remote: ++ [[ ! testapp =~ ^[a-z].* ]]
remote: ++ return 0
remote: ++ [[ ! -d /home/dokku/testapp ]]
remote: ++ return 0
remote: ++ local APP_PROXY_ENABLED=true
remote: +++ config_get testapp DOKKU_DISABLE_PROXY
remote: +++ declare 'desc=get value of given config var'
remote: +++ config_sub get testapp DOKKU_DISABLE_PROXY
remote: +++ declare 'desc=executes a config subcommand'
remote: +++ local name=get
remote: +++ shift
remote: +++ /var/lib/dokku/plugins/available/config/subcommands/get config:get testapp DOKKU_DISABLE_PROXY
remote: ++ local DOKKU_DISABLE_PROXY=
remote: ++ [[ -n '' ]]
remote: ++ echo true
remote: + [[ true == \f\a\l\s\e ]]
remote: + [[ -n http:45300:5000 ]]
remote: + local port_map
remote: + for port_map in '$DOKKU_PROXY_PORT_MAP'
remote: ++ awk -F : '{ print $1 }'
remote: + local scheme=http
remote: ++ awk -F : '{ print $2 }'
remote: + local listen_port=45300
remote: + echo http://ubuntu-xenial:45300
http://ubuntu-xenial:45300
remote: + echo
remote: ++ rm -rf /tmp/dokku_git.wAC3
remote: ++ rm -rf ''
remote: + release_app_deploy_lock testapp
remote: + declare 'desc=release advisory lock used in git/tar deploys'
remote: + local APP=testapp
remote: + verify_app_name testapp
remote: + declare 'desc=verify app name format and app existence'
remote: + local APP=testapp
remote: + is_valid_app_name testapp
remote: + declare 'desc=verify app name format'
remote: + local APP=testapp
remote: + [[ ! -n testapp ]]
remote: + [[ ! testapp =~ ^[a-z].* ]]
remote: + return 0
remote: + [[ ! -d /home/dokku/testapp ]]
remote: + return 0
remote: + local APP_DEPLOY_LOCK_FD=200
remote: + local APP_DEPLOY_LOCK_FILE=/home/dokku/testapp/.deploy.lock
remote: + flock -u 200
remote: + rm -f /home/dokku/testapp/.deploy.lock
remote: ++ rm -rf ''
remote: + rm -rf ''
remote: + source /var/lib/dokku/core-plugins/available/common/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + source /var/lib/dokku/plugins/available/tar/functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: ++ source /var/lib/dokku/core-plugins/available/common/functions
remote: +++ set -eo pipefail
remote: +++ [[ -n 1 ]]
remote: +++ set -x
remote: + tar_receive_app testapp c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + declare 'desc=tar receive-app plugin trigger'
remote: + local trigger=tar_receive_app
remote: + local APP=testapp
remote: + local REV=c6d37a2131b2a0e2258a731974e643a78f8e1f05
remote: + [[ ! -f /home/dokku/testapp/src.tar ]]
remote: + true
remote: + read -r oldrev newrev refname
remote: + exit_code=0
remote: + set -e
remote: + [[ 0 -eq 10 ]]
remote: + implemented=1
remote: + [[ 0 -ne 0 ]]
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/logs/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/monit/commands git-hook testapp
remote: + source /var/lib/dokku/plugins/available/monit/internal-functions
remote: ++ set -eo pipefail
remote: ++ [[ -n 1 ]]
remote: ++ set -x
remote: + case "$1" in
remote: + exit 10
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/network/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/nginx-vhosts/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/plugin/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/proxy/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/ps/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/repo/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/shell/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/ssh-keys/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/storage/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/tags/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + for script in '$PLUGIN_ENABLED_PATH/*/commands'
remote: + set +e
remote: + /var/lib/dokku/plugins/enabled/tar/commands git-hook testapp
remote: + exit_code=10
remote: + set -e
remote: + [[ 10 -eq 10 ]]
remote: + continue
remote: + [[ 1 -eq 0 ]]
+ exit_code=0
+ set -e
+ [[ 0 -eq 10 ]]
+ implemented=1
+ [[ 0 -ne 0 ]]
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/logs/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/monit/commands git-receive-pack ''\''testapp'\'''
+ source /var/lib/dokku/plugins/available/monit/internal-functions
++ set -eo pipefail
++ [[ -n 1 ]]
++ set -x
+ case "$1" in
+ exit 10
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/network/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/nginx-vhosts/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/plugin/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/proxy/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/ps/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/repo/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/shell/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/ssh-keys/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/storage/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/tags/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ for script in '$PLUGIN_ENABLED_PATH/*/commands'
+ set +e
+ /var/lib/dokku/plugins/enabled/tar/commands git-receive-pack ''\''testapp'\'''
+ exit_code=10
+ set -e
+ [[ 10 -eq 10 ]]
+ continue
+ [[ 1 -eq 0 ]]
+ set +f
+ exit 0
To dokku@localhost:testapp
* [new branch] master -> master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment