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"