mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 16:37:34 +00:00
fix(security): avoid world-writable storage in Laravel multi-stage examples
两处 Laravel 多阶段构建示例把 storage 目录设为 chmod -R 777,且全文没有任何 警告或说明,读者复制粘贴即得到 session/cache/log 目录全局可写的生产镜像。 这与本书 7.11(USER)与第 18 章的最小权限指引相矛盾。 改为将 storage 归属 www-data(php:8.3-fpm-alpine 中 php-fpm worker 的运行用户) 并设为 775:构建期 artisan 以 root 运行不受影响,运行期 www-data 仍可写。
This commit is contained in:
@@ -121,7 +121,8 @@ RUN set -x ; cd ${LARAVEL_PATH} \
|
|||||||
&& mkdir -p storage/framework/testing \
|
&& mkdir -p storage/framework/testing \
|
||||||
&& mkdir -p storage/framework/views \
|
&& mkdir -p storage/framework/views \
|
||||||
&& mkdir -p storage/logs \
|
&& mkdir -p storage/logs \
|
||||||
&& chmod -R 777 storage \
|
&& chown -R www-data:www-data storage \
|
||||||
|
&& chmod -R 775 storage \
|
||||||
&& php artisan package:discover
|
&& php artisan package:discover
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -226,7 +227,8 @@ RUN set -x ; cd ${LARAVEL_PATH} \
|
|||||||
&& mkdir -p storage/framework/testing \
|
&& mkdir -p storage/framework/testing \
|
||||||
&& mkdir -p storage/framework/views \
|
&& mkdir -p storage/framework/views \
|
||||||
&& mkdir -p storage/logs \
|
&& mkdir -p storage/logs \
|
||||||
&& chmod -R 777 storage \
|
&& chown -R www-data:www-data storage \
|
||||||
|
&& chmod -R 775 storage \
|
||||||
&& php artisan package:discover
|
&& php artisan package:discover
|
||||||
|
|
||||||
FROM nginx:1.28-alpine as nginx
|
FROM nginx:1.28-alpine as nginx
|
||||||
|
|||||||
Reference in New Issue
Block a user