更新 Dockerfile
This commit is contained in:
parent
fe06a0c42a
commit
8a7b50081a
62
Dockerfile
62
Dockerfile
@ -1,61 +1,11 @@
|
||||
FROM debian:12-slim
|
||||
|
||||
# 合并所有安装操作到单个 RUN 层减少镜像体积
|
||||
RUN set -eux; \
|
||||
# 创建快捷命令
|
||||
echo '#!/bin/bash\nphp artisan "$@"' > /usr/bin/art && \
|
||||
chmod +x /usr/bin/art; \
|
||||
\
|
||||
# 更新系统并安装基础工具
|
||||
apt update; \
|
||||
apt install -y --no-install-recommends wget unzip ca-certificates; \
|
||||
\
|
||||
# 添加 PHP 仓库
|
||||
wget --no-check-certificate -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg; \
|
||||
echo "deb https://packages.sury.org/php/ bookworm main" > /etc/apt/sources.list.d/php.list; \
|
||||
\
|
||||
# 安装 PHP 及运行时依赖
|
||||
apt update; \
|
||||
apt install -y --no-install-recommends \
|
||||
php8.4-cli \
|
||||
php8.4-bcmath \
|
||||
php8.4-curl \
|
||||
php8.4-mbstring \
|
||||
php8.4-zip \
|
||||
php8.4-dom \
|
||||
php8.4-mysql \
|
||||
php8.4-sqlite3 \
|
||||
php8.4-redis \
|
||||
php8.4-pgsql \
|
||||
php8.4-gd \
|
||||
php8.4-intl \
|
||||
php8.4-bz2 \
|
||||
php8.4-mongodb \
|
||||
php8.4-memcached \
|
||||
php8.4-imap \
|
||||
php8.4-exif \
|
||||
php8.4-fileinfo \
|
||||
php8.4-apcu \
|
||||
php8.4-gmp \
|
||||
libz-dev \
|
||||
libbrotli-dev; \
|
||||
\
|
||||
# 安装构建依赖 (仅编译时使用)
|
||||
apt install -y --no-install-recommends php8.4-dev build-essential php-pear libgmp-dev libicu-dev; \
|
||||
\
|
||||
# 安装 PECL 扩展
|
||||
pecl channel-update pecl.php.net; \
|
||||
MAKEFLAGS="-j $(nproc)" pecl install grpc swoole; \
|
||||
\
|
||||
# 移除构建依赖和缓存
|
||||
strip --strip-debug /usr/lib/php/*/*.so; \
|
||||
apt purge -y --auto-remove php8.4-dev build-essential php-pear; \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/pear /usr/share/man/*; \
|
||||
\
|
||||
# 安装 Composer
|
||||
wget -qO /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar; \
|
||||
chmod +x /usr/bin/composer; \
|
||||
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
|
||||
# 设置环境变量以避免交互式提示
|
||||
ENV DEBIAN_FRONTEND=noninteractive LC_ALL=C.UTF-8
|
||||
|
||||
# 复制并执行安装脚本
|
||||
COPY setup.sh /setup.sh
|
||||
RUN chmod +x /setup.sh && /setup.sh && rm /setup.sh
|
||||
|
||||
# 最后复制配置文件 (单独层便于修改)
|
||||
COPY php.ini /etc/php/8.4/cli/conf.d/99-custom.ini
|
Loading…
Reference in New Issue
Block a user