From 8485e8359cbb242a4b4566848735e74ea5308abd Mon Sep 17 00:00:00 2001 From: Kenny Yang <45874689+shakenny@users.noreply.github.com> Date: Wed, 22 May 2024 17:18:56 +0800 Subject: [PATCH] Create Dockerfile --- vps/Dockerfile | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 vps/Dockerfile diff --git a/vps/Dockerfile b/vps/Dockerfile new file mode 100644 index 0000000..043dc01 --- /dev/null +++ b/vps/Dockerfile @@ -0,0 +1,55 @@ +# 使用 php:8.2-fpm 镜像作为基础 +FROM php:8.2-fpm + +# 更新包管理器并安装必要的依赖 +RUN apt-get update && apt upgrade -y && apt-get install -y \ + unzip \ + libbz2-dev \ + libmemcached-dev \ + zlib1g-dev \ + libldap2-dev \ + libpng-dev \ + libpq-dev \ + libjpeg-dev \ + libjpeg62-turbo-dev \ + libwebp-dev \ + libxpm-dev \ + libvpx-dev \ + libfreetype6-dev \ + libxml2-dev \ + libicu-dev \ + git \ + curl \ + && apt install -y \ + libmariadb-dev-compat \ + libmariadb-dev \ + libzip-dev \ + libmagickwand-dev \ + imagemagick \ + libmcrypt-dev \ + libmcrypt4 \ + libssl-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp --with-xpm \ + && 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 + +# 安装 mcrypt 扩展 +RUN pecl install mcrypt-1.0.7 \ + && docker-php-ext-enable mcrypt + +# 安装 SourceGuardian 扩展 +RUN curl -L -o /tmp/loaders.linux-x86_64.tar.gz https://github.com/shakenny/standard-docker/raw/main/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 + +# 配置 PHP 上传限制和内存限制 +RUN echo "upload_max_filesize=50M\n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini \ + && echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini + +# 清理包缓存和临时文件 +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*