This commit is contained in:
parent
26157713a2
commit
f6b816ae8f
|
|
@ -1,39 +1,85 @@
|
||||||
# 使用官方 PHP 镜像,带扩展
|
# # 使用官方 PHP 镜像,带扩展
|
||||||
|
# FROM php:8.0.30-fpm
|
||||||
|
|
||||||
|
# # 安装系统依赖和 PHP 扩展所需的库
|
||||||
|
# RUN apt-get update && apt-get install -y \
|
||||||
|
# git unzip zip libpq-dev libzip-dev \
|
||||||
|
# libpng-dev libjpeg-dev libfreetype6-dev libstdc++6\
|
||||||
|
# && docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||||
|
# && docker-php-ext-install pdo_mysql zip gd
|
||||||
|
|
||||||
|
# # 安装 swoole 扩展(生产环境建议加 --enable-openssl 等参数)
|
||||||
|
# RUN pecl channel-update pecl.php.net \
|
||||||
|
# && pecl install swoole-4.8.13 \
|
||||||
|
# && docker-php-ext-enable swoole
|
||||||
|
|
||||||
|
# # 安装 Composer
|
||||||
|
# COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
|
# # 设置工作目录
|
||||||
|
# WORKDIR /var/www
|
||||||
|
|
||||||
|
# # 复制项目代码到容器中
|
||||||
|
# COPY . .
|
||||||
|
|
||||||
|
# # ✅ 安装 swoole_loader.so
|
||||||
|
# RUN ext_dir=$(php -i | grep '^extension_dir' | awk '{print $3}') \
|
||||||
|
# && cp swoole_loader.so "$ext_dir/" \
|
||||||
|
# && echo "extension=swoole_loader.so" >> /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
# # 安装 PHP 依赖
|
||||||
|
# RUN composer install --no-interaction --prefer-dist --optimize-autoloader
|
||||||
|
|
||||||
|
# # 复制 .env 示例(如你已有 .env 可改这步)
|
||||||
|
# RUN cp .example.env .env || true
|
||||||
|
|
||||||
|
# # 设置目录权限(视情况而定)
|
||||||
|
# RUN chown -R www-data:www-data /var/www
|
||||||
|
|
||||||
|
# # 启动 PHP 内建服务器(仅用于验证)
|
||||||
|
# CMD ["php", "think", "run", "--host", "0.0.0.0", "--port", "8000"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FROM php:8.0.30-fpm
|
FROM php:8.0.30-fpm
|
||||||
|
|
||||||
# 安装系统依赖和 PHP 扩展所需的库
|
# 1) 系统依赖 + PHP 扩展
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update \
|
||||||
git unzip zip libpq-dev libzip-dev \
|
&& apt-get install -y --no-install-recommends \
|
||||||
libpng-dev libjpeg-dev libfreetype6-dev libstdc++6\
|
git unzip zip libpq-dev libzip-dev \
|
||||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
libpng-dev libjpeg-dev libfreetype6-dev \
|
||||||
&& docker-php-ext-install pdo_mysql zip gd
|
libstdc++6 \
|
||||||
|
libssl-dev libcurl4-openssl-dev \
|
||||||
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||||
|
&& docker-php-ext-install pdo_mysql zip gd \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# 安装 swoole 扩展(生产环境建议加 --enable-openssl 等参数)
|
# 2) Swoole 4.8.x(兼容 PHP 8.0)
|
||||||
RUN pecl install swoole \
|
RUN pecl channel-update pecl.php.net \
|
||||||
&& docker-php-ext-enable swoole
|
&& printf "\n" | pecl install swoole-4.8.13 \
|
||||||
|
&& docker-php-ext-enable swoole
|
||||||
|
|
||||||
# 安装 Composer
|
# 3) Composer
|
||||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
# 设置工作目录
|
|
||||||
WORKDIR /var/www
|
WORKDIR /var/www
|
||||||
|
|
||||||
# 复制项目代码到容器中
|
# 4) 复制代码
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# ✅ 安装 swoole_loader.so
|
# 5) 安装 swoole_loader.so
|
||||||
RUN ext_dir=$(php -i | grep '^extension_dir' | awk '{print $3}') \
|
RUN ext_dir="$(php -r 'echo ini_get("extension_dir");')" \
|
||||||
&& cp swoole_loader.so "$ext_dir/" \
|
&& cp swoole_loader.so "$ext_dir/" \
|
||||||
&& echo "extension=swoole_loader.so" >> /usr/local/etc/php/php.ini
|
&& echo "extension=swoole_loader.so" >> /usr/local/etc/php/php.ini \
|
||||||
|
# 立即验证能否加载,构建期即可失败
|
||||||
|
&& php -dextension=swoole_loader.so -m | grep -q swoole_loader
|
||||||
|
|
||||||
# 安装 PHP 依赖
|
# 6) Composer 依赖
|
||||||
RUN composer install --no-interaction --prefer-dist --optimize-autoloader
|
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader \
|
||||||
|
&& composer clear-cache
|
||||||
|
|
||||||
# 复制 .env 示例(如你已有 .env 可改这步)
|
# 7) 权限(如需)
|
||||||
RUN cp .example.env .env || true
|
|
||||||
|
|
||||||
# 设置目录权限(视情况而定)
|
|
||||||
RUN chown -R www-data:www-data /var/www
|
RUN chown -R www-data:www-data /var/www
|
||||||
|
|
||||||
# 启动 PHP 内建服务器(仅用于验证)
|
|
||||||
CMD ["php", "think", "run", "--host", "0.0.0.0", "--port", "8000"]
|
CMD ["php", "think", "run", "--host", "0.0.0.0", "--port", "8000"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue