Bei der lokalen Entwicklung von Laravel mit Docker anstelle von Laradock konnte Permission Denied "/ storage / logs" nicht schreiben. Ich werde in diesem Fall eine Problemumgehung hinterlassen.
Wahrscheinlich liegt die Ursache für die verweigerte Berechtigung darin, dass sich die UID und die GID zwischen dem Host und dem Client unterscheiden. Wenn die Konfiguration Nginx> php-fpm von Docker-Compose lautet, können Sie eine beliebige UID und GID für den Nginx-Benutzer "www-data" in der Docker-Datei auf der Seite "php-fpm" angeben (siehe unten). ..
Dockerfile
ARG PUID=1000
ARG PGID=1000
RUN echo "-> $PUID"
RUN echo "-> $PGID"
RUN groupmod -o -g $PGID www-data && \
usermod -o -u $PUID -g www-data www-data
Fügen Sie die UID und GID Ihres eigenen Mac ein, wenn Sie "Docker-Compose Build" erstellen.
$ docker-compose build --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) app
Die UID und GID von Host und Client sind jetzt identisch.
$ (Id -u)
konnte nicht korrekt aufgelöst werden, als der obige Befehl in Makefile gesetzt wurde.
Es funktioniert gut, wenn Sie wie folgt schreiben
Makefile
build_app:
$(eval UID := $(shell id -u))
$(eval GID := $(shell id -g))
@docker-compose build --build-arg PUID=$(UID) --build-arg PGID=$(GID) app
Recommended Posts