Docker:当PHP将文件上载到已装入的数据卷时,权限被拒绝

时间:2017-09-23 10:54:42

标签: docker docker-compose volume docker-volume

我在 Win10 上使用docker quickstart终端。

Client:
 Version:      17.06.0-ce, 
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

我有一个简单的文档上传php脚本,可以将上传的文档保存到名为'/ uploads'的文件位置。

我想将'/ uploads'文件夹作为附加到php:apache容器的卷,这样我就可以轻松地与python后端共享内容。

我正在使用以下docker-compose.yml文件来构建带有python后端的Web服务。 注意: php在没有卷的php:apache环境中工作。

$ docker volume create fileul --opt o=uid=197609,gid=0

version: '3.2'

services:
  Python_app:
    build: ./product
    volumes:
      - ./product:/usr/src/app
ports:
  - 5001:80

website:
    image: php:apache
    volumes:
      - ./website:/var/www/html
      - type: volume
        source: fileuld
        target: /var/www/html/uploads
        read_only: false
    ports:
      - 5000:80
    depends_on:
      - Python_app

volumes:
  fileuld:

当我尝试将文档上传到附加的卷fileuld时,我在Web服务上出现权限错误。 failed to open stream: Permission denied in /var/www/html/upload.php

我已经阅读了其他一些stackoverflow帖子,他们谈论了uid和gid,我尝试过使用:

$ls -ls

其中包含以下内容:

 4 -rw-r--r-- 1 ASUSNJHOME 197609 343 Sep 23 14:49 docker-compose.yml
32 drwxr-xr-x 1 ASUSNJHOME 197609   0 Sep 22 07:10 product/
 0 drwxr-xr-x 1 ASUSNJHOME 197609   0 Sep 23 15:38 volume-example/
 0 drwxr-xr-x 1 ASUSNJHOME 197609   0 Sep 22 21:32 website/

但我无法弄清楚如何让卷能够接受写入的文档,或者如何在从docker-compose文件创建文档时更改它的权限。

有人能指出我正确的方向吗?

由于

迈克尔

0 个答案:

没有答案