A bunch of things
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y \
|
||||
php$BUILDTIME_PHP_VER_INST-fpm \
|
||||
php$BUILDTIME_PHP_VER_INST-bcmath \
|
||||
php$BUILDTIME_PHP_VER_INST-bz2 \
|
||||
php$BUILDTIME_PHP_VER_INST-common \
|
||||
php$BUILDTIME_PHP_VER_INST-curl \
|
||||
php$BUILDTIME_PHP_VER_INST-dba \
|
||||
php$BUILDTIME_PHP_VER_INST-enchant \
|
||||
php$BUILDTIME_PHP_VER_INST-gd \
|
||||
php$BUILDTIME_PHP_VER_INST-gmp \
|
||||
php$BUILDTIME_PHP_VER_INST-http \
|
||||
php$BUILDTIME_PHP_VER_INST-imap \
|
||||
php$BUILDTIME_PHP_VER_INST-interbase \
|
||||
php$BUILDTIME_PHP_VER_INST-intl \
|
||||
php$BUILDTIME_PHP_VER_INST-ldap \
|
||||
php$BUILDTIME_PHP_VER_INST-mbstring \
|
||||
php$BUILDTIME_PHP_VER_INST-memcache \
|
||||
php$BUILDTIME_PHP_VER_INST-memcached \
|
||||
php$BUILDTIME_PHP_VER_INST-mysql \
|
||||
php$BUILDTIME_PHP_VER_INST-odbc \
|
||||
php$BUILDTIME_PHP_VER_INST-opcache \
|
||||
php$BUILDTIME_PHP_VER_INST-pgsql \
|
||||
php$BUILDTIME_PHP_VER_INST-ps \
|
||||
php$BUILDTIME_PHP_VER_INST-pspell \
|
||||
php$BUILDTIME_PHP_VER_INST-raphf \
|
||||
php$BUILDTIME_PHP_VER_INST-readline \
|
||||
php$BUILDTIME_PHP_VER_INST-snmp \
|
||||
php$BUILDTIME_PHP_VER_INST-soap \
|
||||
php$BUILDTIME_PHP_VER_INST-sqlite3 \
|
||||
php$BUILDTIME_PHP_VER_INST-stomp \
|
||||
php$BUILDTIME_PHP_VER_INST-sybase \
|
||||
php$BUILDTIME_PHP_VER_INST-tidy \
|
||||
php$BUILDTIME_PHP_VER_INST-xdebug \
|
||||
php$BUILDTIME_PHP_VER_INST-xml \
|
||||
php$BUILDTIME_PHP_VER_INST-xsl \
|
||||
php$BUILDTIME_PHP_VER_INST-zip \
|
11
multi-php-fpm-srv/project/entrypoint/entrypoint.sh
Normal file
11
multi-php-fpm-srv/project/entrypoint/entrypoint.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
/bin/sh /entrypoint/container-php-ver-inst.sh
|
||||
/bin/sh /entrypoint/install-php-versions.sh
|
||||
/bin/sh /entrypoint/start-php-fpm.sh
|
||||
|
||||
# Run the CMD that was passed (or default)
|
||||
exec "$@"
|
||||
|
||||
tail -f /dev/null
|
||||
|
76
multi-php-fpm-srv/project/entrypoint/install-php-versions.sh
Normal file
76
multi-php-fpm-srv/project/entrypoint/install-php-versions.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export DEBCONF_NONINTERACTIVE_SEEN=true
|
||||
|
||||
# Validate required variables
|
||||
if [ -z "${PHP_VERSIONS:-}" ]; then
|
||||
echo "ERROR: PHP_VERSIONS environment variable is not set" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${DEF_PHP_INTERPRETER:-}" ]; then
|
||||
echo "ERROR: DEF_PHP_INTERPRETER environment variable is not set" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify package availability before installation
|
||||
apt-get update
|
||||
|
||||
# Install each PHP version with validation
|
||||
for version in $PHP_VERSIONS; do
|
||||
# Validate version format (X.Y)
|
||||
if ! echo "$version" | grep -Eq '^[0-9]+\.[0-9]+$'; then
|
||||
echo "ERROR: Invalid PHP version format '$version'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing PHP $version packages..."
|
||||
if ! apt-get install -y \
|
||||
php${version}-fpm \
|
||||
php${version}-bcmath \
|
||||
php${version}-bz2 \
|
||||
php${version}-common \
|
||||
php${version}-curl \
|
||||
php${version}-dba \
|
||||
php${version}-enchant \
|
||||
php${version}-gd \
|
||||
php${version}-gmp \
|
||||
php${version}-http \
|
||||
php${version}-imap \
|
||||
php${version}-interbase \
|
||||
php${version}-intl \
|
||||
php${version}-ldap \
|
||||
php${version}-mbstring \
|
||||
php${version}-memcache \
|
||||
php${version}-memcached \
|
||||
php${version}-mysql \
|
||||
php${version}-odbc \
|
||||
php${version}-opcache \
|
||||
php${version}-pgsql \
|
||||
php${version}-ps \
|
||||
php${version}-pspell \
|
||||
php${version}-raphf \
|
||||
php${version}-readline \
|
||||
php${version}-snmp \
|
||||
php${version}-soap \
|
||||
php${version}-sqlite3 \
|
||||
php${version}-stomp \
|
||||
php${version}-sybase \
|
||||
php${version}-tidy \
|
||||
php${version}-xdebug \
|
||||
php${version}-xml \
|
||||
php${version}-xsl \
|
||||
php${version}-zip; then
|
||||
echo "ERROR: Failed to install PHP $version packages" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Set default PHP version with validation
|
||||
if ! update-alternatives --set php "/usr/bin/php${DEF_PHP_INTERPRETER}"; then
|
||||
echo "ERROR: Failed to set default PHP interpreter to $DEF_PHP_INTERPRETER" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
22
multi-php-fpm-srv/project/entrypoint/start-php-fpm.sh
Normal file
22
multi-php-fpm-srv/project/entrypoint/start-php-fpm.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
# Start each version listed in PHP_VERSIONS
|
||||
for version in $PHP_VERSIONS; do
|
||||
echo "Starting php$version-fpm..."
|
||||
service "php$version-fpm" start
|
||||
done
|
||||
|
||||
# Check if BUILDTIME_PHP_VER_INST is defined and not already in PHP_VERSIONS
|
||||
if [ -n "$BUILDTIME_PHP_VER_INST" ]; then
|
||||
case " $PHP_VERSIONS " in
|
||||
*" $BUILDTIME_PHP_VER_INST "*)
|
||||
echo "BUILDTIME_PHP_VER_INST ($BUILDTIME_PHP_VER_INST) already started."
|
||||
;;
|
||||
*)
|
||||
echo "Starting BUILDTIME_PHP_VER_INST (php$BUILDTIME_PHP_VER_INST-fpm)..."
|
||||
service "php$BUILDTIME_PHP_VER_INST-fpm" start
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
Reference in New Issue
Block a user