diff --git a/CHANGELOG.md b/CHANGELOG.md index b41b47e..6976f6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ #### Fixed - Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted. +#### Changed +- Ensured CI tests are platform agnostic (amd64 vs arm64) + ## Release 0.136 diff --git a/tests/.lib.sh b/tests/.lib.sh index 4155f1e..a850a74 100755 --- a/tests/.lib.sh +++ b/tests/.lib.sh @@ -93,8 +93,8 @@ function get_random_name() { local name= for i in {1..15}; do - rand="$( shuf -i 0-${len} -n 1 )" - rand=$(( rand - 1 )) + rand="$( shuf -i "0-${len}" -n 1 )" + rand="$(( rand - 1 ))" name="${name}${chr[$rand]}" i="${i}" # simply to get rid of shellcheck complaints done @@ -107,16 +107,18 @@ function get_random_name() { ### function docker_run() { local image_name="${1}" - + local architecture="${2}" shift + shift + local args="${*}" # Returns docker-id - did="$( run "docker run --rm -d --name $( get_random_name ) ${args} ${image_name}" "1" )" + did="$( run "docker run --rm -d --platform ${architecture} --name $( get_random_name ) ${args} ${image_name}" "1" )" sleep 10 # If it fails, start again in foreground to fail again, but show errors - if ! docker exec $(tty -s && echo "-it" || echo ) ${did} ls >/dev/null 2>&1; then + if ! docker exec "$(tty -s && echo "-it" || echo )" "${did}" ls >/dev/null 2>&1; then run "docker run --rm --name $( get_random_name ) ${args} ${image_name}" "1" return 1 fi diff --git a/tests/base/01-test-env-entrypoint.sh b/tests/base/01-test-env-entrypoint.sh index 0b5cb8c..f734603 100755 --- a/tests/base/01-test-env-entrypoint.sh +++ b/tests/base/01-test-env-entrypoint.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -22,7 +23,7 @@ FLAVOUR="${3}" ### ### Debug == 0 ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=0" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=0" )" if ! run_fail "docker logs ${did} 2>&1 | grep 'Debug level'"; then docker_logs "${did}" || true @@ -48,7 +49,7 @@ docker_stop "${did}" ### ### Debug == 1 ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=1" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=1" )" if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 1'"; then docker_logs "${did}" || true @@ -74,7 +75,7 @@ docker_stop "${did}" ### ### Debug == 2 ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2" )" if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 2'"; then docker_logs "${did}" || true diff --git a/tests/base/02-test-env-uid.sh b/tests/base/02-test-env-uid.sh index 063c45a..411d216 100755 --- a/tests/base/02-test-env-uid.sh +++ b/tests/base/02-test-env-uid.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -22,7 +23,7 @@ FLAVOUR="${3}" ### ### uid: 1005 (new uid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1005" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1005" )" if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then docker_logs "${did}" || true @@ -42,7 +43,7 @@ docker_stop "${did}" ### ### uid: 1000 (same uid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1000" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1000" )" if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then docker_logs "${did}" || true @@ -62,7 +63,7 @@ docker_stop "${did}" ### ### uid: 33 (existing uid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=33" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=33" )" if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then docker_logs "${did}" || true diff --git a/tests/base/03-test-env-gid.sh b/tests/base/03-test-env-gid.sh index 43196aa..c77955a 100755 --- a/tests/base/03-test-env-gid.sh +++ b/tests/base/03-test-env-gid.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -22,7 +23,7 @@ FLAVOUR="${3}" ### ### gid: 1005 (new gid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1005" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1005" )" if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then docker_logs "${did}" || true @@ -42,7 +43,7 @@ docker_stop "${did}" ### ### gid: 1000 (same gid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1000" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1000" )" if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then docker_logs "${did}" || true @@ -62,7 +63,7 @@ docker_stop "${did}" ### ### gid: 33 (existing gid) ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=33" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=33" )" if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then docker_logs "${did}" || true diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index a0a7e43..407ea21 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -38,10 +39,10 @@ chmod 0777 "${DOC_ROOT_HOST}" chmod 0644 "${DOC_ROOT_HOST}/index.php" # Pull Image -run "until docker pull ${CONTAINER}; do sleep 1; done" +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -62,7 +63,7 @@ name="$( docker_name "${did}" )" } > "${CONFIG_HOST}/php.conf" # Start Nginx -ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Wait for both containers to be up and running run "sleep 10" @@ -75,7 +76,7 @@ run "sleep 10" # On pm = ondemand, there will be no child process, so we need to create some traffic # in order to have child proccesses spawn for i in $(seq 1 10); do - curl http://127.0.0.1:${WWW_PORT}/index.php?${i} >/dev/null 2>&1 & + curl "http://127.0.0.1:${WWW_PORT}/index.php?${i}" >/dev/null 2>&1 & done if ! docker_exec "${did}" "ps auxw | grep -E '(php-fpm: pool|php-cgi)' | grep -v grep | awk '{ print \$1 }' | tail -1 | grep devilbox"; then docker_exec "${did}" "ps auxw" diff --git a/tests/base/06-test-apt-repositories.sh b/tests/base/06-test-apt-repositories.sh index 598245d..5b1a794 100755 --- a/tests/base/06-test-apt-repositories.sh +++ b/tests/base/06-test-apt-repositories.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -22,7 +23,7 @@ FLAVOUR="${3}" ### ### Ensuring 'apt update' works without any issues ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2" )" if ! docker_exec "${did}" "apt update"; then docker_logs "${did}" || true diff --git a/tests/mods/01-test-modules.sh b/tests/mods/01-test-modules.sh index e52138b..1f916b9 100755 --- a/tests/mods/01-test-modules.sh +++ b/tests/mods/01-test-modules.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 @@ -21,7 +22,7 @@ FLAVOUR="${3}" ERROR=0 for dir in $( ls -1 "${CWD}/modules/" ); do - if ! "${CWD}/modules.sh" "${IMAGE}" "${VERSION}" "${FLAVOUR}" "${dir}"; then + if ! "${CWD}/modules.sh" "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" "${dir}"; then ERROR="$(( ERROR + 1 ))" fi done diff --git a/tests/mods/modules.sh b/tests/mods/modules.sh index b1bf64b..6c40aa1 100755 --- a/tests/mods/modules.sh +++ b/tests/mods/modules.sh @@ -12,9 +12,10 @@ if [ "${#}" != "4" ]; then fi IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" -MODULE="${4}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" +MODULE="${5}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -47,6 +48,7 @@ fi WORKDIR="/tmp/${MODULE}" docker run \ --rm \ + --platform "${ARCH}" \ -e DEBUG_ENTRYPOINT=0 \ -e NEW_UID="$(id -u)" \ -e NEW_GID="$(id -g)" \ diff --git a/tests/prod/01-test-env-timezone.sh b/tests/prod/01-test-env-timezone.sh index d1b08c0..668cd72 100755 --- a/tests/prod/01-test-env-timezone.sh +++ b/tests/prod/01-test-env-timezone.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -22,7 +23,7 @@ FLAVOUR="${3}" ### ### Europe/Berlin ### -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )" if ! run "docker logs ${did} 2>&1 | grep -q 'Europe/Berlin'"; then docker_logs "${did}" || true diff --git a/tests/prod/02-test-env-docker_logs-stdout.sh b/tests/prod/02-test-env-docker_logs-stdout.sh index 02e82e8..e36fabc 100755 --- a/tests/prod/02-test-env-docker_logs-stdout.sh +++ b/tests/prod/02-test-env-docker_logs-stdout.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -39,13 +40,15 @@ chmod 0777 -R "${LOG_DIR_HOST}" chmod 0777 -R "${CFG_DIR_HOST}" chmod 0777 -R "${WWW_DIR_HOST}" +# Pull Image +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" ### ### Start container ### # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=1 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=1 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -67,7 +70,7 @@ name="$( docker_name "${did}" )" # Start Nginx -ndid="$( docker_run "${CONTAINER}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Wait for both containers to be up and running run "sleep 10" @@ -96,7 +99,7 @@ fi if [ -f "${LOG_DIR_HOST}/php-fpm.access" ]; then echo "Access log should not exist: ${LOG_DIR_HOST}/php-fpm.access" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" cat "${LOG_DIR_HOST}/php-fpm.access" docker_logs "${did}" || true docker_stop "${ndid}" || true @@ -110,7 +113,7 @@ fi if [ -f "${LOG_DIR_HOST}/php-fpm.error" ]; then echo "Error log should not exist: ${LOG_DIR_HOST}/php-fpm.error" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" cat "${LOG_DIR_HOST}/php-fpm.error" docker_logs "${did}" || true docker_stop "${ndid}" || true diff --git a/tests/prod/03-test-env-docker_logs-file.sh b/tests/prod/03-test-env-docker_logs-file.sh index deeb79a..a23c84e 100755 --- a/tests/prod/03-test-env-docker_logs-file.sh +++ b/tests/prod/03-test-env-docker_logs-file.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -39,13 +40,15 @@ chmod 0777 -R "${LOG_DIR_HOST}" chmod 0777 -R "${CFG_DIR_HOST}" chmod 0777 -R "${WWW_DIR_HOST}" +# Pull Image +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" ### ### Start container ### # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=0 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=0 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -67,7 +70,7 @@ name="$( docker_name "${did}" )" # Start Nginx -ndid="$( docker_run "${CONTAINER}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Wait for both containers to be up and running run "sleep 10" @@ -96,7 +99,7 @@ fi if [ ! -f "${LOG_DIR_HOST}/php-fpm.access" ]; then echo "Access log does not exist: ${LOG_DIR_HOST}/php-fpm.access" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" docker_logs "${did}" || true docker_stop "${ndid}" || true docker_stop "${did}" || true @@ -108,7 +111,7 @@ if [ ! -f "${LOG_DIR_HOST}/php-fpm.access" ]; then fi if [ ! -r "${LOG_DIR_HOST}/php-fpm.access" ]; then echo "Access log is not readable" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" docker_logs "${did}" || true docker_stop "${ndid}" || true docker_stop "${did}" || true @@ -121,7 +124,7 @@ fi if [ ! -f "${LOG_DIR_HOST}/php-fpm.error" ]; then echo "Error log does not exist: ${LOG_DIR_HOST}/php-fpm.error" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" docker_logs "${did}" || true docker_stop "${ndid}" || true docker_stop "${did}" || true @@ -133,7 +136,7 @@ if [ ! -f "${LOG_DIR_HOST}/php-fpm.error" ]; then fi if [ ! -r "${LOG_DIR_HOST}/php-fpm.error" ]; then echo "Error log is not readable" - ls -lap ${LOG_DIR_HOST}/ + ls -lap "${LOG_DIR_HOST}/" docker_logs "${did}" || true docker_stop "${ndid}" || true docker_stop "${did}" || true diff --git a/tests/prod/04-test-env-enable_mail.sh b/tests/prod/04-test-env-enable_mail.sh index 75a1166..03466a0 100755 --- a/tests/prod/04-test-env-enable_mail.sh +++ b/tests/prod/04-test-env-enable_mail.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -23,7 +24,7 @@ FLAVOUR="${3}" ### Postfix ### MOUNTPOINT="$( mktemp --directory )" -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail" )" run "sleep 10" if ! run "docker logs ${did} 2>&1 | grep -q 'ENABLE_MAIL'"; then diff --git a/tests/prod/05-test-env-forward_ports_to_localhost.sh b/tests/prod/05-test-env-forward_ports_to_localhost.sh index cfd27d6..cbe9921 100755 --- a/tests/prod/05-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/05-test-env-forward_ports_to_localhost.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -25,14 +26,14 @@ FLAVOUR="${3}" CONTAINER="mysql:5.6" # Pull Container -run "until docker pull ${CONTAINER}; do sleep 1; done" +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" # Start mysql container -mdid="$( docker_run "${CONTAINER}" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )" +mdid="$( docker_run "${CONTAINER}" "${ARCH}" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )" mname="$( docker_name "${mdid}" )" run "sleep 5" -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 --link ${mname}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 --link ${mname}" )" if ! run "docker logs ${did} 2>&1 | grep 'Forwarding ${mname}:3306'"; then docker_logs "${did}" || true docker_logs "${mdid}" || true diff --git a/tests/prod/06-test-mount-custom_ini.sh b/tests/prod/06-test-mount-custom_ini.sh index 89e021e..24e2035 100755 --- a/tests/prod/06-test-mount-custom_ini.sh +++ b/tests/prod/06-test-mount-custom_ini.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -44,10 +45,10 @@ chmod 0777 "${DOC_ROOT_HOST}" chmod 0644 "${DOC_ROOT_HOST}/index.php" # Pull container -run "until docker pull ${CONTAINER}; do sleep 1; done" +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -69,7 +70,7 @@ name="$( docker_name "${did}" )" # Start Nginx -ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Wait for both containers to be up and running run "sleep 10" diff --git a/tests/prod/07-test-mount-custom_fpm_conf.sh b/tests/prod/07-test-mount-custom_fpm_conf.sh index 9d0f4e4..135ca69 100755 --- a/tests/prod/07-test-mount-custom_fpm_conf.sh +++ b/tests/prod/07-test-mount-custom_fpm_conf.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -49,10 +50,10 @@ chmod 0777 "${DOC_ROOT_HOST}" chmod 0644 "${DOC_ROOT_HOST}/index.php" # Pull container -run "until docker pull ${CONTAINER}; do sleep 1; done" +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_CNF_HOST}:${PHP_CNF_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_CNF_HOST}:${PHP_CNF_CONT}" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -74,7 +75,7 @@ name="$( docker_name "${did}" )" # Start Nginx -ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Wait for both containers to be up and running run "sleep 10" diff --git a/tests/prod/08-test-custom-user-scripts-1.sh b/tests/prod/08-test-custom-user-scripts-1.sh index ccc064a..a9ede10 100755 --- a/tests/prod/08-test-custom-user-scripts-1.sh +++ b/tests/prod/08-test-custom-user-scripts-1.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -33,7 +34,7 @@ printf "#!/bin/bash\\necho 'abcdefghijklmnopq';\\n" > "${RUN_SH_HOST}/myscript1. chmod +x "${RUN_SH_HOST}/myscript1.sh" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${RUN_SH_HOST}:${RUN_SH_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${RUN_SH_HOST}:${RUN_SH_CONT}" )" # Wait for both containers to be up and running run "sleep 10" diff --git a/tests/prod/09-test-custom-user-scripts-2.sh b/tests/prod/09-test-custom-user-scripts-2.sh index eadabd6..e378032 100755 --- a/tests/prod/09-test-custom-user-scripts-2.sh +++ b/tests/prod/09-test-custom-user-scripts-2.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -33,7 +34,7 @@ printf "#!/bin/bash\\necho 'abcdefghijklmnopq';\\n" > "${RUN_SH_HOST}/myscript1. chmod +x "${RUN_SH_HOST}/myscript1.sh" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${RUN_SH_HOST}:${RUN_SH_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${RUN_SH_HOST}:${RUN_SH_CONT}" )" # Wait for both containers to be up and running run "sleep 10" diff --git a/tests/test.sh b/tests/test.sh index 0a5463a..666a116 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -45,41 +45,41 @@ FLAVOUR="${4}" ### Run tests ### if [ "${FLAVOUR}" = "base" ] || [ "${FLAVOUR}" = "mods" ] || [ "${FLAVOUR}" = "prod" ] || [ "${FLAVOUR}" = "work" ]; then - TESTS="$( find ${CWD} -regex "${CWD}/base/[0-9].+.*\.sh" | sort -u )" + TESTS="$( find "${CWD}" -regex "${CWD}/base/[0-9].+.*\.sh" | sort -u )" for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${VERSION}-${FLAVOUR}] (${ARCH}): ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" - time ${t} "${IMAGE}" "${VERSION}" "${FLAVOUR}" + time ${t} "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" done fi if [ "${FLAVOUR}" = "mods" ] || [ "${FLAVOUR}" = "prod" ] || [ "${FLAVOUR}" = "work" ]; then - TESTS="$( find ${CWD} -regex "${CWD}/mods/[0-9].+.*\.sh" | sort -u )" + TESTS="$( find "${CWD}" -regex "${CWD}/mods/[0-9].+.*\.sh" | sort -u )" for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${VERSION}-${FLAVOUR}] (${ARCH}): ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" - time ${t} "${IMAGE}" "${VERSION}" "${FLAVOUR}" + time ${t} "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" done fi if [ "${FLAVOUR}" = "prod" ] || [ "${FLAVOUR}" = "work" ]; then - TESTS="$( find ${CWD} -regex "${CWD}/prod/[0-9].+.*\.sh" | sort -u )" + TESTS="$( find "${CWD}" -regex "${CWD}/prod/[0-9].+.*\.sh" | sort -u )" for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${VERSION}-${FLAVOUR}] (${ARCH}): ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" - time ${t} "${IMAGE}" "${VERSION}" "${FLAVOUR}" + time ${t} "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" done fi if [ "${FLAVOUR}" = "work" ]; then - TESTS="$( find ${CWD} -regex "${CWD}/work/[0-9].+.*\.sh" | sort -u )" + TESTS="$( find "${CWD}" -regex "${CWD}/work/[0-9].+.*\.sh" | sort -u )" for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${VERSION}-${FLAVOUR}] (${ARCH}): ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" - time ${t} "${IMAGE}" "${VERSION}" "${FLAVOUR}" + time ${t} "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" done fi diff --git a/tests/work/01-test-env-mysqldump-secure.sh b/tests/work/01-test-env-mysqldump-secure.sh index 6ccd989..ffae6e7 100755 --- a/tests/work/01-test-env-mysqldump-secure.sh +++ b/tests/work/01-test-env-mysqldump-secure.sh @@ -7,8 +7,9 @@ set -o pipefail CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" IMAGE="${1}" -VERSION="${2}" -FLAVOUR="${3}" +ARCH="${2}" +VERSION="${3}" +FLAVOUR="${4}" # shellcheck disable=SC1090 . "${CWD}/../.lib.sh" @@ -27,21 +28,21 @@ MOUNTPOINT="$( mktemp --directory )" CONTAINER="mysql:5.6" # Pull Container -run "until docker pull ${CONTAINER}; do sleep 1; done" +run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done" # Start mysql container -mdid="$( docker_run "${CONTAINER}" "-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" )" +mdid="$( docker_run "${CONTAINER}" "${ARCH}" "-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" )" mname="$( docker_name "${mdid}" )" run "sleep 10" # Start PHP-FPM container -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 -e MYSQL_BACKUP_USER=root -e MYSQL_BACKUP_PASS=${MYSQL_ROOT_PASSWORD} -e MYSQL_BACKUP_HOST=127.0.0.1 -v ${MOUNTPOINT}:/shared/backups --link ${mname}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 -e MYSQL_BACKUP_USER=root -e MYSQL_BACKUP_PASS=${MYSQL_ROOT_PASSWORD} -e MYSQL_BACKUP_HOST=127.0.0.1 -v ${MOUNTPOINT}:/shared/backups --link ${mname}" )" docker_exec "${did}" mysqldump-secure if [ ! -d "${MOUNTPOINT}/mysql" ]; then echo "MySQL backup dir does not exist: ${MOUNTPOINT}/mysql" - ls -lap ${MOUNTPOINT}/ + ls -lap "${MOUNTPOINT}/" docker_logs "${did}" || true docker_logs "${mdid}" || true docker_stop "${did}" || true