From 7552f74b91cbc7f60b241e8c079dc184846a7a2d Mon Sep 17 00:00:00 2001 From: Kenny Yang <45874689+shakenny@users.noreply.github.com> Date: Tue, 28 May 2024 11:22:02 +0800 Subject: [PATCH] Update Dockerfile --- vps/Dockerfile | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/vps/Dockerfile b/vps/Dockerfile index dd04dc5..fbeddaf 100644 --- a/vps/Dockerfile +++ b/vps/Dockerfile @@ -1,5 +1,9 @@ -# 使用 php:8.2-fpm 镜像作为基础 -FROM php:8.2-fpm +# 设置 PHP 版本作为构建参数 +ARG PHP_VERSION +FROM php:${PHP_VERSION}-fpm + +# 设置环境变量 +ENV DEBIAN_FRONTEND=noninteractive # 更新包管理器并安装必要的依赖 RUN apt-get update && apt upgrade -y && apt-get install -y \ @@ -33,22 +37,40 @@ RUN apt-get update && apt upgrade -y && apt-get install -y \ && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql mysqli zip intl exif ldap bcmath opcache bz2 gettext sockets \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-install -j$(nproc) ldap \ - && pecl install imagick swoole memcached redis \ - && docker-php-ext-enable imagick swoole memcached redis + && pecl install imagick memcached redis \ + && docker-php-ext-enable imagick memcached redis # 安装 mcrypt 扩展 -RUN pecl install mcrypt-1.0.7 \ - && docker-php-ext-enable mcrypt +RUN if [ "${PHP_VERSION}" = "8.2" ]; then \ + pecl install mcrypt-1.0.7 && docker-php-ext-enable mcrypt \ + elif [ "${PHP_VERSION}" = "7.4" ]; then \ + pecl install mcrypt-1.0.4 && docker-php-ext-enable mcrypt; \ + fi + +# 安装 swoole 扩展 +RUN if [ "${PHP_VERSION}" = "8.2" ]; then \ + pecl install swoole && docker-php-ext-enable swoole; \ + elif [ "${PHP_VERSION}" = "7.4" ]; then \ + pecl install swoole-4.8.11 && docker-php-ext-enable swoole; \ + fi # 安装 SourceGuardian 扩展 -RUN curl -L -o /tmp/loaders.linux-x86_64.tar.gz https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \ - && tar -zxvf /tmp/loaders.linux-x86_64.tar.gz -C /tmp/ \ - && cp /tmp/ixed.8.2.lin /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ \ - && echo "zend_extension=ixed.8.2.lin" > /usr/local/etc/php/conf.d/sourceguardian.ini \ - && rm /tmp/loaders.linux-x86_64.tar.gz +RUN if [ "${PHP_VERSION}" = "8.2" ]; then \ + curl -L -o /tmp/loaders.linux-x86_64.tar.gz https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \ + && tar -zxvf /tmp/loaders.linux-x86_64.tar.gz -C /tmp/ \ + && cp /tmp/ixed.8.2.lin /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ \ + && echo "zend_extension=ixed.8.2.lin" > /usr/local/etc/php/conf.d/sourceguardian.ini \ + && rm -rf /tmp/loaders.linux-x86_64.tar.gz; \ + elif [ "${PHP_VERSION}" = "7.4" ]; then \ + curl -L -o /tmp/loaders.linux-x86_64.tar.gz https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \ + && tar -zxvf /tmp/loaders.linux-x86_64.tar.gz -C /tmp/ \ + && cp /tmp/ixed.7.4.lin /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ \ + && echo "zend_extension=ixed.7.4.lin" > /usr/local/etc/php/conf.d/sourceguardian.ini \ + && rm -rf /tmp/loaders.linux-x86_64.tar.gz; \ + fi # 配置 PHP 上传限制和内存限制 -RUN echo "upload_max_filesize=50M\n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini \ +RUN echo "upload_max_filesize=80M\n post_max_size=100M" > /usr/local/etc/php/conf.d/uploads.ini \ && echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini # 清理包缓存和临时文件