Используя bind mount, права доступа к каталогам никому не нужны: nogroup - PullRequest
0 голосов
/ 21 июня 2019

Мой Dockerfile выглядит как

FROM  ubuntu:xenial

Some RUN commands

WORKDIR /app

COPY . /app

ENV PYTHONPATH="/app/candis"

EXPOSE 5000 8888

CMD ["python3", "-m", "candis"]

Мой docker-compose выглядит как


x-defaults: &defaults
  restart: unless-stopped
services:
  db:
    <<: *defaults
    image: postgres
    networks:
      - db
    expose:
      - "5432"
    app:
    <<: *defaults
    build:
       context: .
       dockerfile: ./compose/development/flask/Dockerfile
    environment:
      CANDIS_DATABASE_HOST: db
      CANDIS_CACHE_HOST: cache
    networks:
      - db
      - cache
      - proxy

    depends_on:
      - db
    volumes:
      - .:/app
    ports:
      - "5000:5000"
      - "8888:8888"     
    cache:
    <<: *defaults
    image: redis
    networks:
      - cache
    proxy:
    <<: *defaults
    image: nginx
    depends_on:
      - app
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "4000:80"
    networks:
      - proxy
networks:
  db:
    driver: bridge
  cache:
    driver: bridge
  proxy:
    driver: bridge 

Когда я присоединяю монтирование каталога / app, упоминая его в томах как .:/app, он монтируется внутри контейнера, но вместо того, чтобы его разрешения были root: root, по умолчанию он меняется на nnobody: nogroup. Зачем? Когда я захожу в контейнер и выполняю ls -al, разрешения для каждого файла отображаются равными nobody:nogroup. Хотя мой пользователь является пользователем root, он все еще не может вносить какие-либо изменения в каталог / app.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...