xiaoai/php_server/Dockerfile

40 lines
1.2 KiB
Docker

# 使用官方 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 install swoole \
&& 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"]