Ensured CI tests are platform agnostic (amd64 vs arm64)

This commit is contained in:
cytopia
2022-03-22 22:50:11 +01:00
parent d1fd0addaa
commit 5eb8ce8187
20 changed files with 117 additions and 90 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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