Том внутри другого тома использует www-данные вместо root - PullRequest
1 голос
/ 15 марта 2019

Я использую следующий Dockerfile / docker-compose.yml.

Я включаю том "vendor" в том "/ var / www".Папка "vendor" создается автоматически при запуске файла docker-compose.Но он создается с помощью chown «root: root», а все остальные папки внутри «/ var / www» преобразуются в «www-data: www-data».

Есть идеи, как мне это исправить, чтобы том «вендора» также был забит www-данными по умолчанию?

Dockerfile

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

docker-compose.yml:

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

volumes:
  vendor:

"ls -la" в "/ var / www" показывает следующее:

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

1 Ответ

2 голосов
/ 16 марта 2019

Да, вы можете использовать обходной путь, просто создайте папку в Dockerfile, разрешение будет сохранено, например:

Dockerfile

FROM ddmitrii/support

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

CMD [ "sleep", "9999" ]

Docker Compose версия: "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
...