diff --git a/Dockerfile b/Dockerfile index 3dc52667a..bc0ee4e8e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM phusion/baseimage:0.11 CMD ["/sbin/my_init"] +ARG DOCKER_BIN=/usr/local/bin/docker ARG DOKKU_TAG=0.17.7 ARG DOKKU_GID=200 ARG DOKKU_UID=200 diff --git a/contrib/dokku-docker-bin.sh b/contrib/dokku-docker-bin.sh index f20ae5928..3bc362322 100755 --- a/contrib/dokku-docker-bin.sh +++ b/contrib/dokku-docker-bin.sh @@ -4,6 +4,5 @@ set -eo pipefail DOKKU_DOCKER_CONTAINER_NAME=${DOKKU_DOCKER_CONTAINER_NAME:=dokku} # TODO: handle cases where we need a tty -DOCKER_CMD="docker exec $DOKKU_DOCKER_ENV -i $DOKKU_DOCKER_CONTAINER_NAME dokku $*" - -exec "$DOCKER_CMD" +# shellcheck disable=SC2086 +docker exec $DOKKU_DOCKER_ENV -i "$DOKKU_DOCKER_CONTAINER_NAME" dokku "$@" diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 0eeeee7be..d2efe38b2 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -53,7 +53,26 @@ run_dokku_container() { --volume /var/run/docker.sock:/var/run/docker.sock \ dokku/dokku:test - sleep 1 && docker logs dokku + check_container +} + +check_container() { + echo "=====> check_container on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX" + local is_up + local cnt=0 + while true; do + echo "$(date) [count: $cnt]: waiting for dokku startup" + is_up=$( + docker exec -ti dokku ps -ef | grep "/usr/sbin/sshd -D" >/dev/null 2>&1 + echo $? + ) + if [[ $is_up -eq 0 ]]; then + echo "" && docker logs dokku + break + fi + sleep 2 + cnt=$((cnt + 1)) + done } install_dokku() { @@ -68,7 +87,7 @@ install_dokku() { run_dokku_container sudo mkdir -p /usr/local/bin - sudo cp -v contrib/dokku-docker-bin.sh /usr/local/bin/dokku + sudo cp -fv contrib/dokku-docker-bin.sh /usr/local/bin/dokku } # shellcheck disable=SC2120