更新 Dockerfile
This commit is contained in:
parent
d547a02857
commit
e86ffb02ff
78
Dockerfile
78
Dockerfile
@ -1,29 +1,55 @@
|
||||
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 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 \
|
||||
libz-dev; \
|
||||
\
|
||||
# 安装构建依赖 (仅编译时使用)
|
||||
apt install -y --no-install-recommends php8.4-dev build-essential php-pear; \
|
||||
\
|
||||
# 安装 PECL 扩展
|
||||
pecl channel-update pecl.php.net; \
|
||||
MAKEFLAGS="-j $(nproc)" pecl install grpc openswoole; \
|
||||
\
|
||||
# 移除构建依赖和缓存
|
||||
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/
|
||||
|
||||
RUN echo '#!/bin/bash\nphp artisan "$@"' > /usr/bin/art && \
|
||||
chmod +x /usr/bin/art && \
|
||||
# DEBIAN_FRONTEND=noninteractive echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \
|
||||
# echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
|
||||
# echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
|
||||
# echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
|
||||
# rm -rf /etc/apt/sources.list.d/debian.sources && \
|
||||
apt update && \
|
||||
apt install -y --no-install-recommends wget curl lsb-release unzip ca-certificates && \
|
||||
wget --no-check-certificate -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \
|
||||
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' && \
|
||||
apt update && \
|
||||
apt install -y --no-install-recommends libz-dev build-essential php8.4-cli php8.4-bcmath php8.4-bz2 php8.4-curl php8.4-redis php8.4-mongodb php8.4-pgsql php8.4-intl php8.4-mbstring php8.4-zip php8.4-gd php8.4-dom php8.4-mysql php8.4-dev php8.4-sqlite3 php-pear php8.4-memcached
|
||||
|
||||
RUN pecl channel-update pecl.php.net && MAKEFLAGS="-j $(nproc)" pecl install grpc && pecl install openswoole && strip --strip-debug /usr/lib/php/*/*.so && \
|
||||
apt autoremove --purge -y php8.4-dev php-pear build-essential libz-dev lsb-release && \
|
||||
apt-get clean autoclean -y && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /var/lib/{apt,dpkg,cache,log}/ && \
|
||||
wget https://mirrors.aliyun.com/composer/composer.phar -O /usr/bin/composer && \
|
||||
chmod +x /usr/bin/composer && \
|
||||
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
COPY php.ini /etc/php/8.4/cli/conf.d/99-custom.ini
|
||||
# 最后复制配置文件 (单独层便于修改)
|
||||
COPY php.ini /etc/php/8.4/cli/conf.d/99-custom.ini
|
Loading…
Reference in New Issue
Block a user