Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker test: check detached container #337

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions .docker/test_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ PREFIX="libreant-inst-test__"


function cleanup {
for os in ${OSES[@]}; do
for os in ${OSES[@]}; do
docker rm -f ${OSES[@]/#/"$PREFIX"} > /dev/null 2>&1 || true
done
}
Expand All @@ -38,6 +38,22 @@ function test_libreant_search {
curl -fs "localhost:5000/search?q=*:*" > /dev/null
}

function check_detatched_container {
c_name=$1
running=`docker container inspect $c_name --format={{.State.Running}}`
if [ "$running" == "false" ]; then
echo -e "\nERROR: container '$c_name' is not running." 1>&2
echo "Container state: " 1>&2
docker container inspect $c_name --format=" Status: {{.State.Status}}" 1>&2
docker container inspect $c_name --format=" ExitCode: {{.State.ExitCode}}" 1>&2
echo "Container last log line:" 1>&2
docker logs --tail=10 $c_name
return 1
fi
return 0
}


# this implements a linear backoff
# it will wait 1, then 2, then... $CURL_RETRIES seconds
function with_backoff {
Expand All @@ -59,16 +75,16 @@ function with_backoff {

# check before sleeping
(( attempt <= max_attempts )) || break
printf ". "
printf ". "
sleep $attempt
attempt=$(( attempt + 1 ))
done

if [[ $exitCode != 0 ]]
then
echo "Failed too many times -- $*" 1>&2
echo "Failed too many times -- $*" 1>&2
else
printf "\n"
printf "\n"
fi

return $exitCode
Expand All @@ -82,7 +98,8 @@ i=1
for os in "${OSES[@]}" ; do
echo "Testing libreant installation on ${os}"
docker build --file="${LIBREANT_SRC}/.docker/dockerfile-${os}" --tag="${PREFIX}${os}" "${LIBREANT_SRC}"
docker run --rm -p 5000:5000 -d --name "${PREFIX}${os}" "${PREFIX}${os}"
docker run -p 5000:5000 -d --name "${PREFIX}${os}" "${PREFIX}${os}"
check_detatched_container "${PREFIX}${os}" || exit 1
if ! with_backoff test_libreant_homepage; then
echo "Failed docker test $i/${#OSES[@]}: $os" >&2
echo "at step 1 (home page)" >&2
Expand Down