Nginx Docker 权限被拒绝

Fri*_*erg 6 php nginx laravel docker

我正在使用 docker compose 启动一个开发工作区,其中包括 php、nginx 和 mysql。一切都会启动,静态 html 已得到服务,但是当尝试启动 laravel 应用程序时,我收到以下错误:

无法打开流或文件“/home/html/storage/logs/laravel-2019-06-10.log”:无法打开流:权限被拒绝

我查了一下,好像是权限问题?请注意,只有数据库和 php 服务器构建的 docker 似乎确实可以工作。

我的 docker-compose.yml

version: "3"
services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "root"
    ports:
      - 3306:3306

  php-fpm:
    image: php:7.3-fpm-alpine
    links:
      - db
    volumes:
      - "./:/home/html/"

  nginx:
    image: nginx:1-alpine
    ports:
      - "8080:80"
    links:
      - php-fpm

    volumes:
      - "./site.conf:/etc/nginx/conf.d/default.conf"
      - "./:/home/html/"
Run Code Online (Sandbox Code Playgroud)

我的 nginx 配置:

server {
    index index.php index.html;
    listen 80  default_server;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /home/html/public;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}
Run Code Online (Sandbox Code Playgroud)

亲切的问候 :)

Ren*_* M. 0

进入php-fpm容器:

docker-compose -i -t exec php-fpm /bin/sh
Run Code Online (Sandbox Code Playgroud)

然后更改存储文件夹的访问权限:

chmod -r 777 /home/html/storage
Run Code Online (Sandbox Code Playgroud)

因为它是本地开发环境,正确的权限并不重要。