Files
WrenchBoradWeb/docker-php-fpm/7.3/scripts/docker-boot
T
2022-07-31 14:54:16 +00:00

87 lines
2.5 KiB
Bash

#!/bin/bash
echo "[`date +"%d-%b-%Y %T"`] PHP-FPM Docker container boot"
### create system user for php pool
if [ ! "$PHP_USER" == "" ] && [ ! "$PHP_UID" == "" ] && [ ! "$PHP_GID" == "" ] && [ ! "$PHP_HOME" == "" ]; then
echo "env PHP_USER: creating new system user: ${PHP_USER} ${PHP_UID}:${PHP_GID} ${PHP_HOME}"
mkdir -p $PHP_HOME && \
groupadd -f $PHP_USER -g $PHP_GID && \
useradd -d $PHP_HOME -u $PHP_UID -g $PHP_GID -s /usr/sbin/nologin $PHP_USER
fi
### load PHP ini configurations
if [ ! "$PHP_INI_PATH" == "" ]; then
echo "env PHP_INI_PATH: copy from [ $PHP_INI_PATH ] into [ /usr/local/etc/php/conf.d/ ] folder"
for f in ${PHP_INI_PATH}; do
echo " - $f";
rm -f /usr/local/etc/php/conf.d/${f##*/}
cp $f /usr/local/etc/php/conf.d/
done
fi
### make sure to create clean php-fpm.conf
### to avoid adding multiple times the same lines next
### in case container is restarting
echo "[global]" > /usr/local/etc/php-fpm.conf
echo "include=etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf
### load PHP-FPM pool configurations
if [ ! "$PHP_POOL_PATH" == "" ]; then
echo "env PHP_POOL_PATH: copy from [ $PHP_POOL_PATH ] into [ /usr/local/etc/php-fpm.d/ ] folder"
for f in ${PHP_POOL_PATH}; do
echo " - $f";
rm -f /usr/local/etc/php-fpm.d/${f##*/}
cp $f /usr/local/etc/php-fpm.d/
done
fi
### scan for config files in folders from PHP_INI_SCAN_DIR
if [ ! -z ${PHP_INI_SCAN_DIR+x} ] && [ "$PHP_INI_SCAN_DIR" != "" ] ; then
echo "env PHP_INI_SCAN_DIR: copy from [ $PHP_INI_SCAN_DIR ] into [ /usr/local/etc/php-fpm.d/ ] folder"
### break down path by : separator
IFS=':' read -ra DIRECTORIES <<< "$PHP_INI_SCAN_DIR"
for DIR in "${DIRECTORIES[@]}"; do
### check if there are any php pool configuration files to copy
COUNT=`ls -1 $DIR/*.conf 2>/dev/null | wc -l`
if [ $COUNT != "0" ] ; then
echo " - $DIR/*.conf";
cp -f $DIR/*.conf /usr/local/etc/php-fpm.d/
fi
done
fi
### load boot bash scripts
for f in /usr/local/bin/*.sh; do
/bin/bash -c $f
done
### load additional on-demand scripts
if [ ! -z ${PHP_BOOT_SCRIPTS+x} ] && [ "$PHP_BOOT_SCRIPTS" != "" ]; then
echo "env PHP_BOOT_SCRIPTS: executing scripts in [ $PHP_BOOT_SCRIPTS ]"
for f in ${PHP_BOOT_SCRIPTS}; do
echo " - $f";
rm -f /usr/local/bin/${f##*/}
cp $f /usr/local/bin/
chmod +x /usr/local/bin/${f##*/}
done
for f in ${PHP_BOOT_SCRIPTS}; do
/bin/bash -c /usr/local/bin/${f##*/}
done
fi
### expose php version
echo
/usr/local/bin/php -v