Docker - contêiner iniciado pelo docker - compõe a alteração da propriedade do arquivo para raiz

10

Estou iniciando seis ou sete contêineres por meio de um arquivo de composição do docker. Um contêiner está causando um grande problema! Aqui está a seção relevante:

services:
    ...
    main-app:
    image: mycompany/sys:1.2.3
    container_name: "main-app-container"
    ports:
    - "8080:8080"
    - "8009"
    volumes:
     - db_data:/var/lib/home/data:rw
     - /opt/mycompany/sys/config:/opt/mycompany/sys/config:rw
    networks:
    - systeminternal
    hostname:  "mylocalhost.company.com" 
volumes:
    db_data:
    driver: local
networks:
    systeminternal:

Quando o main-app-container é iniciado via docker-compose up (como usuário root), os privilégios do sistema de arquivos em muitos dos diretórios no container confirmado são todos alterados para root! Isso está rodando no Ubuntu 14.04, Docker 1.12.x (não sei qual x).

Temos outro sistema em que executamos tudo como um usuário local. Quando executamos um shell nesse contêiner, todos os privilégios de arquivo são de nosso usuário local que foi propriedade quando foi confirmada. De googling, eu tenho certeza que tem algo a ver com os volumes, mas não consegui encontrar nada definitivo. Qualquer ajuda é bem vinda!

    
por JoeG 15.11.2016 в 20:45
fonte

1 resposta

2

Esse é o comportamento esperado para as montagens de host. Tudo isso dentro de /opt/mycompany/sys/config estará tendo o mesmo UID / GID que os arquivos têm no host - isso é por design.

Altere os arquivos para o uid / gid que você precisa no host: chown -R 123:321 /opt/mycompany/sys/config ou configure seu contêiner para ficar satisfeito em usar o uid / gid do host.

Não tem nada a ver com o docker-compose, isso aconteceria da mesma maneira quando você usa

docker run -v /opt/mycompany/sys/config:/opt/mycompany/sys/config mycompany/sys:1.2.3

    
por Eugen Mayer 03.01.2017 / 18:29
fonte