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"

Antworten auf die Frage(2)

Ihre Antwort auf die Frage