【问题标题】:Volume inside another volume use www-data instead of root另一个卷内的卷使用 www-data 而不是 root
【发布时间】:2019-03-15 20:56:30
【问题描述】:

我正在使用以下 Dockerfile/docker-compose.yml。

我将卷“供应商”包含在“/var/www”卷中。运行 docker-compose 文件时会自动创建“供应商”文件夹。但它是用 chown "root:root" 创建的,而 "/var/www" 内的所有其他文件夹都被 chown 为 "www-data:www-data"。

知道如何修复它,以便默认情况下“供应商”卷也被 www-data chown 吗?

Dockerfile

...
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data
...

docker-compose.yml:

volumes:
    - ./:/var/www
    - vendor:/var/www/vendor

volumes:
  vendor:

“/var/www”上的“ls -la”显示如下:

drwxr-xr-x 2 www-data www-data    0 Mar 15 20:40 .
drwxr-xr-x 2 www-data www-data 4096 Mar 15 20:28 ..
drwxr-xr-x 2 www-data www-data    0 Mar 15 20:42 test
drwxr-xr-x 2 root     root     4096 Mar 15 20:38 vendor

【问题讨论】:

  • 你能分享你完整的 Dockerfile 吗?

标签: docker docker-compose docker-volume


【解决方案1】:

是的,你可以使用变通方法,只需在 Dockerfile 中创建文件夹,权限将被保存,例如:

Dockerfile

FROM caa06d9c/support

RUN mkdir /var/www/ && chown 1000:1000 /var/www

CMD [ "sleep", "9999" ]

Docker 编写 版本:“3.2”

services:
    srv:
        image:  temp
        volumes:
            - vendor:/var/www/

volumes:
    vendor:

输出

drwxr-xr-x    3 root     root          4096 Jul  5  2018 spool
drwxrwxrwt    2 root     root          4096 Jul  5  2018 tmp
drwxr-xr-x    2 1000     1000          4096 Mar 15 21:06 www

【讨论】:

  • 谢谢,虽然这是一种解决方法。这似乎是我正在寻找的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多