1
0
Fork 0

feat: update php Dockerfile

This commit is contained in:
zhengkunwang223 2025-05-09 12:14:17 +08:00 committed by CityFun
parent 4687f7f056
commit 84bfb9b24a
6 changed files with 48 additions and 26 deletions

View File

@ -14,6 +14,7 @@ RUN if [ "${CONTAINER_PACKAGE_URL}" != "https://deb.debian.org" ]; then \
apt-get update; \
fi
COPY ./data /tmp/data
COPY data/install-ext /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-ext

Binary file not shown.

View File

@ -10,15 +10,17 @@ echo "Install extensions : $1"
echo "============================================"
echo
isPhpVersionGreaterOrEqual() {
local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;")
local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;")
installExtensionFromTgz(){
tgzName=$1
result=""
extensionName="${tgzName%%-*}"
shift 1
result=$@
mkdir ${extensionName}
tar -zxvf /tmp/data/${tgzName}.tgz -C ${extensionName} --strip-components=1
( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install )
if [ "$PHP_MAJOR_VERSION" -gt "$1" ] || [ "$PHP_MAJOR_VERSION" -eq "$1" ] && [ "$PHP_MINOR_VERSION" -ge "$2" ]; then
return 1
else
return 0
fi
docker-php-ext-enable ${extensionName}
}
is_extension_installed() {
@ -131,6 +133,12 @@ install_yaf() {
docker-php-ext-enable yaf
}
install_imagick() {
apt-get update && apt-get install -y libmagickwand-dev
installExtensionFromTgz imagick-3.8.0
install_msg imagick
}
install_extension() {
local extension=$1
if [ -z "$extension" ]; then
@ -199,13 +207,14 @@ install_extension() {
apt-get update && apt-get install -y libzip-dev
docker_php_ext_install zip
elif [ "$extension" = "memcached" ]; then
install_php_extensions memcached
apt-get update && apt-get install -y libmemcached-dev
pecl_install memcached
elif [ "$extension" = "igbinary" ]; then
install_php_extensions igbinary
pecl_install igbinary
elif [ "$extension" = "apcu" ]; then
install_php_extensions apcu
pecl_install apcu
elif [ "$extension" = "redis" ]; then
install_php_extensions redis
pecl_install redis
elif [ "$extension" = "xdebug" ]; then
install_php_extensions xdebug
elif [ "$extension" = "imap" ]; then
@ -253,7 +262,7 @@ install_extension() {
elif [ "$extension" = "ldap" ]; then
install_php_extensions ldap
elif [ "$extension" = "imagick" ]; then
install_php_extensions imagick
install_imagick
elif [ "$extension" = "amqp" ]; then
install_php_extensions amqp
elif [ "$extension" = "zookeeper" ]; then

View File

@ -7,6 +7,8 @@ ARG CONTAINER_PACKAGE_URL
RUN sed -i "s|URIs: http://deb.debian.org/debian|URIs: ${CONTAINER_PACKAGE_URL}/debian|g" /etc/apt/sources.list.d/debian.sources && \
apt-get update
COPY ./data /tmp/data
COPY data/install-ext /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-ext

Binary file not shown.

View File

@ -10,15 +10,18 @@ echo "Install extensions : $1"
echo "============================================"
echo
isPhpVersionGreaterOrEqual() {
local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;")
local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;")
installExtensionFromTgz()
{
tgzName=$1
result=""
extensionName="${tgzName%%-*}"
shift 1
result=$@
mkdir ${extensionName}
tar -zxvf /tmp/data/${tgzName}.tgz -C ${extensionName} --strip-components=1
( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install )
if [ "$PHP_MAJOR_VERSION" -gt "$1" ] || [ "$PHP_MAJOR_VERSION" -eq "$1" ] && [ "$PHP_MINOR_VERSION" -ge "$2" ]; then
return 1
else
return 0
fi
docker-php-ext-enable ${extensionName}
}
is_extension_installed() {
@ -131,6 +134,12 @@ install_yaf() {
docker-php-ext-enable yaf
}
install_imagick() {
apt-get update && apt-get install -y libmagickwand-dev
installExtensionFromTgz imagick-3.8.0
install_msg imagick
}
install_extension() {
local extension=$1
if [ -z "$extension" ]; then
@ -199,13 +208,14 @@ install_extension() {
apt-get update && apt-get install -y libzip-dev
docker_php_ext_install zip
elif [ "$extension" = "memcached" ]; then
install_php_extensions memcached
apt-get update && apt-get install -y libmemcached-dev
pecl_install memcached
elif [ "$extension" = "igbinary" ]; then
install_php_extensions igbinary
pecl_install igbinary
elif [ "$extension" = "apcu" ]; then
install_php_extensions apcu
pecl_install apcu
elif [ "$extension" = "redis" ]; then
install_php_extensions redis
pecl_install redis
elif [ "$extension" = "xdebug" ]; then
install_php_extensions xdebug
elif [ "$extension" = "imap" ]; then
@ -253,7 +263,7 @@ install_extension() {
elif [ "$extension" = "ldap" ]; then
install_php_extensions ldap
elif [ "$extension" = "imagick" ]; then
install_php_extensions imagick
install_imagick
elif [ "$extension" = "amqp" ]; then
install_php_extensions amqp
elif [ "$extension" = "zookeeper" ]; then