diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index e4d839265..99cd45c4c 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -69,12 +69,6 @@ RUN echo "zend_extension=xdebug.so" > /usr/local/etc/php/conf.d/xdebug.ini # # 创建非 root 用户 # RUN useradd -m -u 1000 phpuser && chown -R phpuser:phpuser /var/www/html -# 设置权限, 防止以下目录无法写入的问题 -RUN chmod -R a+rw /var/www/html/runtime -RUN chmod -R a+rw /var/www/html/uploads -RUN chmod -R a+rw /var/www/html/tmp -RUN chmod -R a+rw /var/www/html/temp - # USER phpuser # 暴露端口 @@ -95,4 +89,10 @@ EXPOSE 9000 9003 ####################################### # 启动Supervisor +# 添加在Dockerfile末尾,CMD命令之前 +COPY ./entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/entrypoint.sh +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] + +# 修改CMD命令 CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] \ No newline at end of file diff --git a/docker/php/entrypoint.sh b/docker/php/entrypoint.sh new file mode 100644 index 000000000..83bc2ed6d --- /dev/null +++ b/docker/php/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# 检查并创建必要的目录 +for dir in "/var/www/html/runtime" "/var/www/html/uploads" "/var/www/html/tmp" "/var/www/html/temp"; do + if [ ! -d "$dir" ]; then + mkdir -p "$dir" + echo "创建目录: $dir" + fi + # 设置权限 + chmod -R a+rw "$dir" + echo "设置权限: $dir -> a+rw" +done + +# 执行原有的启动命令 +exec "$@" \ No newline at end of file