mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-15 05:21:14 +00:00
99 lines
2.1 KiB
Bash
Executable File
99 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -u
|
|
set -o pipefail
|
|
|
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
|
|
|
IMAGE="${1}"
|
|
ARCH="${2}"
|
|
VERSION="${3}"
|
|
FLAVOUR="${4}"
|
|
TAG="${5}"
|
|
|
|
# shellcheck disable=SC1090
|
|
. "${CWD}/../.lib.sh"
|
|
|
|
|
|
|
|
############################################################
|
|
# Tests
|
|
############################################################
|
|
|
|
###
|
|
### Postfix
|
|
###
|
|
MOUNTPOINT="$( mktemp --directory )"
|
|
|
|
print_h2 "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail"
|
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail" )"; then
|
|
exit 1
|
|
fi
|
|
|
|
# Check if PHP-FPM is running
|
|
print_h2 "Check if PHP-FPM is running"
|
|
if ! check_php_fpm_running "${name}"; then
|
|
docker_logs "${name}" || true
|
|
docker_stop "${name}" || true
|
|
echo "Failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Start Tests
|
|
print_h2 "Testing..."
|
|
if ! run "docker logs ${name} 2>&1 | grep -q 'ENABLE_MAIL'"; then
|
|
docker_logs "${name}" || true
|
|
docker_stop "${name}" || true
|
|
rm -rf "${MOUNTPOINT}"
|
|
echo "Failed"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "${MOUNTPOINT}/devilbox" ]; then
|
|
echo "Mail file does not exist: ${MOUNTPOINT}/devilbox"
|
|
ls -lap "${MOUNTPOINT}/"
|
|
docker_logs "${name}" || true
|
|
docker_stop "${name}" || true
|
|
rm -rf "${MOUNTPOINT}"
|
|
echo "Failed"
|
|
exit 1
|
|
fi
|
|
if [ ! -r "${MOUNTPOINT}/devilbox" ]; then
|
|
echo "Mail file is not readable"
|
|
ls -lap "${MOUNTPOINT}/"
|
|
docker_logs "${name}" || true
|
|
docker_stop "${name}" || true
|
|
rm -rf "${MOUNTPOINT}"
|
|
echo "Failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Send test email
|
|
print_h2 "Send test email"
|
|
docker_exec "${name}" "php -r \"mail('mailtest@devilbox.org', 'the subject', 'the message');\""
|
|
|
|
|
|
# Probe if email has been received
|
|
print_h2 "Probe for sent email"
|
|
RETRIES=60
|
|
INDEX=0
|
|
while ! run "grep 'the subject' ${MOUNTPOINT}/devilbox"; do
|
|
if [ "${RETRIES}" = "${INDEX}" ]; then
|
|
docker_logs "${name}" || true
|
|
docker_stop "${name}" || true
|
|
run "cat ${MOUNTPOINT}/devilbox"
|
|
rm -rf "${MOUNTPOINT}"
|
|
echo "Failed"
|
|
exit 1
|
|
fi
|
|
INDEX="$(( INDEX + 1 ))"
|
|
sleep 1
|
|
done
|
|
|
|
|
|
# Cleanup
|
|
print_h2 "Cleanup"
|
|
docker_stop "${name}"
|
|
rm -rf "${MOUNTPOINT}"
|