Lors du développement local de Laravel avec Docker au lieu de Laradock, Permission Denied n'a pas réussi à écrire / storage / logs
.
Je vais laisser une solution de contournement dans ce cas.
La cause de l'autorisation refusée est probablement que l'UID et le GID sont différents entre l'hôte et le client.
Lorsque la configuration est Nginx> php-fpm par docker-compose, permet de spécifier n'importe quel UID et GID pour l'utilisateur Nginx www-data
dans le Dockerfile du côté php-fpm comme indiqué ci-dessous. ..
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
Insérez l'UID et le GID de votre propre Mac lorsque docker-compose build
.
$ docker-compose build --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) app
L'UID et le GID de l'hôte et du client sont désormais identiques.
$ (Id -u)
n'a pas pu être résolu correctement lorsque la commande ci-dessus a été définie dans le Makefile.
Cela fonctionne bien si vous écrivez comme suit
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