36 lines
1.2 KiB
Docker
36 lines
1.2 KiB
Docker
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 WEB_DOCUMENT_ROOT=/app/public \
|
|
PHP_DISPLAY_ERRORS=0 \
|
|
PHP_MEMORY_LIMIT=256M \
|
|
PHP_MAX_EXECUTION_TIME=300 \
|
|
PHP_POST_MAX_SIZE=50M \
|
|
PHP_UPLOAD_MAX_FILESIZE=50M
|
|
# 声明容器对外暴露的端口
|
|
EXPOSE 80
|
|
# 设置自定义 entrypoint
|
|
ENTRYPOINT ["/usr/local/bin/custom-entrypoint.sh"]
|