FROM webdevops/php-nginx:7.2-alpine # 设置工作目录 WORKDIR /app # 复制项目文件 COPY . /app # 复制 Nginx 配置文件 COPY docker/nginx/enable-php.conf /opt/docker/etc/nginx/enable-php.conf COPY docker/nginx/vhost.conf /opt/docker/etc/nginx/vhost.conf # 复制自定义 entrypoint 脚本 COPY docker/entrypoint.sh /usr/local/bin/custom-entrypoint.sh # 给脚本添加可执行权限 RUN chmod +x /app/public/start.sh && \ chmod +x /usr/local/bin/custom-entrypoint.sh # 设置项目文件为只读权限(除 runtime 目录外) RUN chmod -R 555 /app # 设置 runtime 目录和 .env 文件位置为可写权限 RUN chmod -R 755 /app/runtime && \ chmod 755 /app # 复制 crontab 配置并安装 COPY docker/crontab /tmp/crontab RUN cat /tmp/crontab && \ crontab -u application /tmp/crontab && \ crontab -u application -l && \ rm /tmp/crontab # 设置环境变量 ENV SERVER_DATE_TIMEZONE=Asia/Shanghai ENV WEB_DOCUMENT_ROOT=/app/public \ PHP_DISPLAY_ERRORS=0 \ PHP_MEMORY_LIMIT=512M \ PHP_MAX_EXECUTION_TIME=300 \ PHP_POST_MAX_SIZE=50M \ PHP_UPLOAD_MAX_FILESIZE=50M \ PHP_DATE_TIMEZONE=${SERVER_DATE_TIMEZONE} # 声明容器对外暴露的端口 EXPOSE 80 # 设置自定义 entrypoint ENTRYPOINT ["/usr/local/bin/custom-entrypoint.sh"]