fix(docker): 修正容器启动时的目录权限和定时任务用户

确保挂载卷后运行时目录和存储目录具有正确的读写权限,避免因权限问题导致应用无法正常写入文件。
将定时任务进程从 root 切换到 www-data 用户运行,增强安全性。
This commit is contained in:
augushong
2026-03-27 20:40:54 +08:00
parent bc36fcc737
commit 4790f1a787

View File

@@ -9,6 +9,14 @@ cp /var/www/html/docker/zz-phprun.ini /usr/local/etc/php/conf.d
cp /var/www/html/docker/zz-phpfpm.conf /usr/local/etc/php-fpm.d
# 设置目录权限,确保挂载卷后依然有效
mkdir -p /var/www/html/runtime && chmod -R 777 /var/www/html/runtime
mkdir -p /var/www/html/public/storage && chmod -R 777 /var/www/html/public/storage
mkdir -p /var/www/html/public/build && chmod -R 777 /var/www/html/public/build
mkdir -p /var/www/html/storage && chmod -R 777 /var/www/html/storage
mkdir -p /var/www/html/memoryspace && chown -R www-data:www-data /var/www/html/memoryspace
# 运行redis
# nohup redis-server --requirepass "" &
@@ -18,12 +26,12 @@ echo "参数为:$@"
# TODO增加自动批量运行并阻塞的脚本比如group default 会调用auto.sh的default的部分最终阻塞auth.sh的default部分可能会运行一系列的命令比如清空缓存踢人下线重置密码
if [ "$1" = "server" ] || [ "$1" = "" ]; then
# 运行定时任务
nohup php /var/www/html/think timer --local --quit &
# 运行定时任务 TODO:以指定用户运行
su - www-data -c "nohup php /var/www/html/think timer --local --quit &"
# 运行nginx
service nginx start
# 运行php-fpm
php-fpm
else
php "/var/www/html/""$@"
fi
fi