From 339f41f0f275a3ee6d5bc0b6e146d051cabdbd8a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 25 Mar 2023 18:20:30 +0300 Subject: add build workflow --- .docker/app/startup.sh | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .docker/app/startup.sh (limited to '.docker/app/startup.sh') diff --git a/.docker/app/startup.sh b/.docker/app/startup.sh new file mode 100644 index 0000000..5c57db6 --- /dev/null +++ b/.docker/app/startup.sh @@ -0,0 +1,77 @@ +#!/bin/sh -e + +if ! id app >/dev/null 2>&1; then + # what if i actually need a duplicate GID/UID group? + + addgroup -g $OWNER_GID app || echo app:x:$OWNER_GID:app | \ + tee -a /etc/group + + adduser -D -h /var/www/html -G app -u $OWNER_UID app || \ + echo app:x:$OWNER_UID:$OWNER_GID:Linux User,,,:/var/www/html:/bin/ash | tee -a /etc/passwd +fi + +DST_DIR=/var/www/html/books + +[ -e $DST_DIR ] && rm -f $DST_DIR/.app_is_ready + +export PGPASSWORD=$DB_PASS + +[ ! -e /var/www/html/index.php ] && cp ${SCRIPT_ROOT}/index.php /var/www/html + +if [ ! -d $DST_DIR ]; then + rsync -a \ + $SRC_DIR/ $DST_DIR/ +else + rsync -a --delete \ + --exclude sessions \ + --exclude lib/fonts \ + --exclude db \ + $SRC_DIR/ $DST_DIR/ +fi + +if [ ! -e $DST_DIR/index.php ]; then + echo "error: epube index.php missing (git clone failed?), unable to continue." + exit 1 +fi + +if [ -r ${SCRIPT_ROOT}/restore.db ]; then + cp ${SCRIPT_ROOT}/restore.db ${DST_DIR}/${EPUBE_SCRATCH_DB} +fi + +chown -R $OWNER_UID:$OWNER_GID $DST_DIR \ + /var/log/php8 + +for d in db sessions; do + chmod -R 777 $DST_DIR/$d +done + +cp ${SCRIPT_ROOT}/config.docker.php $DST_DIR/config.php + +if [ ! -z "${EPUBE_XDEBUG_ENABLED}" ]; then + if [ -z "${EPUBE_XDEBUG_HOST}" ]; then + export EPUBE_XDEBUG_HOST=$(ip ro sh 0/0 | cut -d " " -f 3) + fi + echo enabling xdebug with the following parameters: + env | grep EPUBE_XDEBUG + cat > /etc/php8/conf.d/50_xdebug.ini <> /proc/1/fd/2) & + +if ! sudo -Eu app php8 $DST_DIR/update.php --user-list | grep -q "$EPUBE_ADMIN_USER"; then + sudo -Eu app php8 $DST_DIR/update.php --user-add "$EPUBE_ADMIN_USER:$EPUBE_ADMIN_PASS" +fi + +touch $DST_DIR/.app_is_ready + +exec /usr/sbin/php-fpm8 --nodaemonize --force-stderr -R -- cgit v1.2.3