如何通过 docker-compose 指定卷的用户和组?

如何通过 docker-compose 指定卷的用户和组?

我正在通过 docker-compose 启动 docker 环境。这提供了 mysql 和 nginx 进程。后者安装包含将提供服务的文件夹的路径。

问题是,当 nginx 以用户“nginx”运行时,卷会挂载为 xfs:xfs。这会导致一个问题,因为有一个 php 脚本需要能够写入磁盘。

在主机操作系统(在 Vagrant 中运行的 Linux,用于开发目的)上,文件夹的所有者是 www-data:www-data。

我无法弄清楚如何使用适当的用户安装该卷。

我的环境加载如下:

docker-compose -f docker-compose-dev.yml up -d

docker-compose-dev.yml 文件的 nginx 镜像部分是:

webserver:
  container_name: somedomain_website
  image: richarvey/nginx-php-fpm:latest
  working_dir: /application
  environment:
    VIRTUAL_HOST: webdev.somedomain.com
    LETSENCRYPT_HOST: somedomain.com
    LETSENCRYPT_EMAIL: [email protected]
#    PGID: 33
#    PUID: 33
  volumes:
    - ../www/2019:/var/www/html/2019
    - ./phpdocker/nginx/nginx_dev.conf:/etc/nginx/sites-available/default.conf
    - ./phpdocker/nginx/nginx_dev.conf:/etc/nginx/sites-enabled/default.conf
    - ./php/php.ini:/usr/local/etc/php/conf.d/99-overrides.ini
  ports:
    - "80:80"

顺便说一句,我确实尝试指定PGIDand PUID,但这破坏了 nginx:

2019-02-11 05:35:38,584 INFO exited: php-fpm (exit status 78; not expected)
2019-02-11 05:35:41,595 INFO spawned: 'php-fpm' with pid 25
[11-Feb-2019 05:35:41] ERROR: [pool www] cannot get uid for user 'nginx'
[11-Feb-2019 05:35:41] ERROR: FPM initialization failed
2019-02-11 05:35:41,635 INFO exited: php-fpm (exit status

谁能建议如何处理这个问题?

在 Ubuntu 18.04.1 LTS 上使用 docker-compose 1.17.1。

相关内容