symfony Docker Berechtigungsprobleme für Cache-Dateien
Ich habe ein Symfony-Setup für Docker mit Docker-Compose, das gut funktioniert, außer wenn ichcache: clear Von der Konsole aus kann der Webserver nicht auf die Dateien zugreifen.
Ich kann das Berechtigungsproblem umgehen, indem ich @ auskommentierumask (0000); in console und web / app_dev.php aber ich möchte symfony wie empfohlen ausführen.
Was ich tue, ist die Container drehendocker-compose up
Dann betrete ich den Container. Der Container enthält den Apache, PHP und den Code über ein Datenvolumen.
docker exec -i -t apache_1 /bin/bash
nscheinend bin ich dann als root angemeldet und wenn ich
app/console cache:clear
Alle Dateien im Cache gehören dem Benutzer root. www-Daten als Webserver-Benutzer können jetzt nicht mehr auf die Dateien zugreifen.
Ich kann dies auch umgehen, indem ich mich als www-data anmelde, dann gehören die vom Cache generierten Dateien: clear zu www-data und der Webserver kann darauf zugreifen.
<,code>docker exec -u www-data -i -t apache_1 /bin/bash
Aber das hat den Nachteil, dass ich nicht in bash lande, sondern in / usr / sbin / nologin und habe keine Dinge wie bash_history und so weiter.
ei der Suche in der Umgebung habe ich festgestellt, dass dies Teil der Docker-Datei ist, um das Berechtigungsproblem zu lösen, aber es hat für mich keine Auswirkun
RUN usermod -u 1000 www-data
Wenn ich richtig verstehe, schaltet dies den Benutzer 1000 auf WWW-Daten um, aber da ich root bin, wenn ich mich beim Container anmelde, funktioniert dies nicht.
Also, warum bin ichWurze wenn ich mich im Container anmelde und wie ist das usermod Angenommen, zu arbeiten?
the 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"