2016-12-15 7 views
0

У меня есть следующий docker-compose.yml файл:Докер меняет права собственности и разрешения, почему?

version: '2' 
services: 
    php-fpm: 
    container_name: "php71-fpm-nginx" 
    build: php-fpm 
    ports: 
     - 8080:80 
     - 9002:9002 
    environment: 
     PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE' 
     STATUS_PAGE_ALLOWED_IP: '127.0.0.1' 
    volumes: 
     - ~/dev:/data/www 
    links: 
     - db 
    db: 
    container_name: "db_mysql" 
    image: mysql 
    environment: 
     MYSQL_ROOT_PASSWORD: '1qazxsw2' 
     MYSQL_DATABASE: 'nortwind' 
     MYSQL_USER: 'db_user' 
     MYSQL_PASSWORD: '1qazxsw2' 
    volumes: 
     - ./dev/northwindSQL:/docker-entrypoint-initdb.d 
     - ~/data/db:/var/lib/mysql 
    elk: 
    container_name: "elk" 
    image: willdurand/elk 
    ports: 
     - 81:80 
    volumes: 
     - ./elk/logstash:/etc/logstash 
     - ./elk/logstash/patterns:/opt/logstash/patterns 
    volumes_from: 
     - php-fpm 

Все работает нормально, но как только я запускаю команду docker-compose up -d --build и контейнеры запуск собственности и разрешение на хосте на ~/dev обновляются следующим образом:

$ ls -la ~/dev/ 
total 96 
drwxrwxr-x 11  80  80 4096 Dec 15 14:36 . 
drwx------. 40 rperez rperez 4096 Dec 15 14:26 .. 
drwxr-xr-x 5  80  80 4096 Mar 13 2015 css 
-rw-r--r-- 1  80  80 189 Mar 10 2016 DEMO_NOTES.TXT 

Является ли это ожидаемым поведением? Это что-то происходит от Dockerfile? Есть идеи?

+0

AFAIK, докер ничего не меняет. Одно из ваших приложений/процессов. Разрешения для файлов на отображаемых томах, вероятно, не работают так, как вы думаете, они делают это. – user2105103

ответ

2

тома взяли на себя ответственность за то, что уже находится на пути в контейнере . Если местоположение в контейнере принадлежит root, то тома получит root. Если местоположение в контейнере принадлежит что-то еще, то объем получит это.

Смежные вопросы