Files
Jump/docker/entrypoint.sh
2023-04-04 13:34:17 +01:00

120 lines
4.4 KiB
Bash

#!/usr/bin/env bash
set -Eeuo pipefail
echo >&2 "-------------------------------------------------------------"
echo >&2 "";
echo >&2 " ██ ██ ██ ███ ███ ██████"
echo >&2 " ██ ██ ██ ████ ████ ██ ██"
echo >&2 " ██ ██ ██ ██ ████ ██ ██████"
echo >&2 "██ ██ ██ ██ ██ ██ ██ ██"
echo >&2 " █████ ██████ ██ ██ ██"
echo >&2 "";
echo >&2 "https://github.com/daledavies/jump"
echo >&2 "";
echo >&2 "-------------------------------------------------------------"
if [ -z "${DEVELOPMENT-}" ]; then
echo >&2 "";
echo >&2 "- Repopulating web root with application files."
if [ "$(ls -A /var/www/html)" ]; then
rm /var/www/html/* -r
fi
cp /usr/src/jumpapp/. /var/www/html -r
echo >&2 "- You are using Jump $(</var/www/html/.jump-version)";
echo >&2 "";
echo >&2 "-------------------------------------------------------------"
echo >&2 "";
echo >&2 "- Checking if backgrounds, favicon, search or sites volumes have been mounted."
if [ -e "/backgrounds" ]; then
echo >&2 " - Backgrounds directory is mapped... symlinking."
rm /var/www/html/assets/backgrounds -r
ln -s /backgrounds /var/www/html/assets/
if [ ! "$(ls -A /backgrounds)" ]; then
echo >&2 " -- Empty so populating with default files."
cp /usr/src/jumpapp/assets/backgrounds/* /backgrounds -r
fi
fi
if [ -e "/favicon" ]; then
echo >&2 " - Favicon directory is mapped... symlinking."
rm /var/www/html/assets/images/favicon -r
ln -s /favicon /var/www/html/assets/images/
if [ ! "$(ls -A /favicon)" ]; then
echo >&2 " -- Empty so populating with default favicon image."
cp /usr/src/jumpapp/assets/images/favicon/* /favicon -r
fi
fi
if [ -e "/sites" ]; then
echo >&2 " - Sites directory is mapped... symlinking."
rm /var/www/html/sites -r
ln -s /sites /var/www/html/
if [ ! "$(ls -A /sites)" ]; then
echo >&2 " -- Empty so populating with default files."
cp /usr/src/jumpapp/sites/* /sites -r
fi
fi
if [ -e "/search" ]; then
echo >&2 " - Search directory is mapped... symlinking."
rm /var/www/html/search -r
ln -s /search /var/www/html/
if [ ! "$(ls -A /search)" ]; then
echo >&2 " -- Empty so populating with default files."
cp /usr/src/jumpapp/search/* /search -r
fi
fi
else
echo >&2 "";
echo >&2 "- Setting correct ownership of xdebug dir"
chown -R jumpapp:jumpapp /tmp/xdebug
fi
DISABLEIPV6=$(echo "${DISABLEIPV6:-}" | tr '[:upper:]' '[:lower:]')
if [ "$DISABLEIPV6" == "true" ] || [ "$DISABLEIPV6" == "1" ]; then
echo >&2 "";
echo >&2 "- Disabling IPv6 in nginx config"
sed -E -i 's/^([^#]*)listen \[::\]/\1#listen [::]/g' /etc/nginx/nginx.conf
else
sed -E -i 's/^(\s*)#listen \[::\]/\1listen [::]/g' /etc/nginx/nginx.conf
fi
# If we have been passed something in DOCKERSOCKET then check it
# was actually mounted and is a socket, if so then create the docker group
# with GID matching the docker socket file, then add jumpapp user to the
# group. This is to give jumpapp permission to make requests to the API.
if [ -n "${DOCKERSOCKET-}" ]; then
echo >&2 "";
echo >&2 "- Testing docker socket file was mounted correctly."
if [ -S "${DOCKERSOCKET}" ]; then
DOCKERGID=$(stat -c %g ${DOCKERSOCKET})
# Delete existing docker group if it exists.
if grep -q "docker" /etc/group; then
echo >&2 "-- Deleting existing docker group."
delgroup docker
fi
# Create a new one with correct GID.
echo >&2 "-- Creating docker group with correct GID."
addgroup -S docker -g $DOCKERGID
# Add jumpapp user to it.
echo >&2 "-- Adding jumpapp user to docker group."
addgroup jumpapp docker
else
echo >&2 "-- Docker socket file was either not mounted or is not a socket."
fi
fi
echo >&2 "";
echo >&2 "- All done! Starting nginx/php services now."
echo >&2 "";
echo >&2 "-------------------------------------------------------------"
echo >&2 "";
php-fpm81
nginx -g 'daemon off;'