problemas de permisos de Docker de Symfony para archivos de caché

Tengo una configuración de Symfony para Docker con Docker-compose que funciona bien, excepto cuando ejecutocaché: borrar desde la consola, el servidor web no puede acceder a los archivos.

Puedo eludir el problema del permiso descomentandoumask (0000); en consola y web / app_dev.php pero me gustaría ejecutar Symfony como se recomienda.

Lo que hago es girar los contenedoresdocker-compose up
Entonces entro en el contenedor. El contenedor contiene el apache, php y el código a través de un volumen de datos.

docker exec -i -t apache_1 /bin/bash

Aparentemente estoy conectado como root y cuando ejecuto

app/console cache:clear

Todos los archivos en caché pertenecen a la raíz del usuario. www-data como usuario del servidor web ahora ya no puede acceder a los archivos.

También puedo evitar esto iniciando sesión como www-data y luego los archivos generados por el caché: clear pertenecen a www-data y el servidor web puede acceder a ellos.

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

Pero esto tiene el inconveniente de que no aterrizo en bash sino en/ usr / sbin / nologin y no tener cosas como bash_history, etc.

Al buscar, encontré esto como parte del Dockerfile para resolver el problema del permiso, pero no tuvo ningún efecto para mí.

RUN usermod -u 1000 www-data

Si entiendo correcto, esto cambia al usuario 1000 a www-data, pero como soy root cuando inicio sesión en el contenedor, esto no funciona, supongo.

Entonces, ¿por qué estoy?raíz cuando inicio sesión en el contenedor y cómo es estousermod se supone que trabajar?

el 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"

Respuestas a la pregunta(1)

Su respuesta a la pregunta