docker-compose exec compositor como usuário

2

Eu tenho uma configuração docker-compose funcionando perfeitamente em minha máquina local para meus projetos symfony com nginx, php7-fpm e mysql.

Muitas vezes eu preciso instalar novos pacotes via composer, então eu apenas entrego o comando para o meu container php-fpm assim:

docker-compose exec my-php-fpm-container composer install

O problema é que instalar todos os pacotes como root, então eu tenho que chown toda vez que eu instalar algo.

Eu sei que o sinalizador "--user" existe, mas se eu usá-lo, ele mostra o seguinte erro:

ERRO: Nenhum serviço como: compositor

Existe alguma maneira de executar o comando docker-compose exec como usuário da máquina local para que o novo compositor instale os arquivos & pastas criam a si mesmas com a propriedade do usuário linux local e não com o root?

    
por sh4 09.12.2016 / 12:24

1 resposta

2

Depois de fazer algumas pesquisas, acabei de perceber que a imagem php7-fpm que estou usando tem alguns usuários embutidos como www-data (compatível com minha configuração de caixa real). Então eu tive que usar a bandeira "--user www-data" junto com o comando para usar o compositor dentro do container e manter os arquivos com as permissões certas.

docker-compose exec --user www-data mycontainer composer install

    
por 12.12.2016 / 08:54