problemas de permissão do symfony docker para arquivos em cache

Eu tenho uma configuração symfony para docker com docker-compose que está funcionando bem, exceto quando corrocache: limpar No console, o servidor da web não pode acessar os arquivos.

Posso contornar o problema de permissão descomentandoumask (0000); no console e web / app_dev.php, mas eu gostaria de executar o symfony conforme recomendado.

O que eu faço é girar os contêineresdocker-compose up
Então eu entro no contêiner. O contêiner contém o apache, php e o código através de um volume de dados.

docker exec -i -t apache_1 /bin/bash

Aparentemente, estou logado como root e quando corro

app/console cache:clear

todos os arquivos no cache pertencem à raiz do usuário. www-data como usuário do servidor web agora não pode mais acessar os arquivos.

Também posso contornar isso fazendo login como www-data e os arquivos gerados pelo cache: clear pertencem a www-data e o servidor da web pode acessá-los.

<,code>docker exec -u www-data -i -t apache_1 /bin/bash

Mas isso tem a desvantagem de não pousar na festança, mas em/ usr / sbin / nologin e não tem coisas como bash_history e assim por diante.

Pesquisando, achei isso como parte do Dockerfile para resolver o problema de permissão, mas não tem efeito para mim.

RUN usermod -u 1000 www-data

Se eu entendi correto, isso muda o usuário 1000 para www-data, mas como sou root quando faço login no contêiner, isso não funciona, presumo.

Então, por que eu souraiz quando eu entrar no contêiner e como é issousermod suponha trabalhar?

o docker-compose.yml:

proxy:
  image: jwilder/nginx-proxy:latest
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
  ports:
    - "80:80"
elastic:
  build: docker/elasticsearch
  ports:
    - "9200:9200"
  volumes:
    - data/elasticsearch:/usr/local/elasticsearch/data
apache:
  build: docker/apachephp
  environment:
    - VIRTUAL_HOST=myapp.dev
  volumes:
    - ./code:/var/www/app
    - ./dotfiles/.bash_history:/.bash_history
    - ./logs:/var/www/app/app/logs
  links:
    - elastic
  expose:
    - "80"

questionAnswers(1)

yourAnswerToTheQuestion