common-nginx-fpm/Dockerfile
Caijinglong e28c0de955
feat: common-nginx-fpm-alpine
Signed-off-by: Caijinglong <cjl_spy@163.com>
2025-06-25 09:35:17 +08:00

60 lines
1.4 KiB
Docker

# 使用官方PHP-FPM Alpine镜像作为基础
FROM php:8.4-fpm-alpine
# 设置维护者信息
LABEL maintainer="Common Nginx PHP-FPM Image"
# 安装系统依赖和nginx
RUN apk add --no-cache \
nginx \
supervisor \
postgresql-dev \
mysql-dev \
&& rm -rf /var/cache/apk/*
# 安装常用PHP扩展
RUN docker-php-ext-install \
pdo_mysql \
pdo_pgsql \
pgsql \
mysqli \
opcache
# 创建必要的目录
RUN mkdir -p /var/www/html \
/var/log/nginx \
/var/log/php-fpm \
/etc/supervisor/conf.d \
/var/lib/php/sessions \
/run/nginx && \
chown -R nginx:nginx /var/www/html \
/var/log/nginx \
/var/log/php-fpm \
/var/lib/php/sessions \
/run/nginx
# 复制配置文件
COPY config/nginx.conf /etc/nginx/nginx.conf
COPY config/php.ini /usr/local/etc/php/php.ini
COPY config/www.conf /usr/local/etc/php-fpm.d/www.conf
# 复制supervisor配置
COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# 复制启动脚本
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# 设置工作目录
WORKDIR /var/www/html
# 创建默认的index.php文件
RUN echo '<?php phpinfo(); ?>' > /var/www/html/index.php
# 暴露端口
EXPOSE 80
# 设置启动命令
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]