Éviter l'autorisation refusée lors du développement de Laravel avec Docker

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.

prime

$ (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

Éviter l'autorisation refusée lors du développement de Laravel avec Docker
Déployer avec EC2 / Docker / Laravel
Lorsque l'accès demandé à la ressource est refusé lors de la transmission avec Docker
MalformedInputException qui se produit également lors de l'écriture
Créez un environnement Docker + Laravel avec Laradock
Construction de l'environnement de développement Laravel avec Docker (Mac)
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Image volée lors de la mise à jour de Docker avec WSL2
Lors de l'appel de l'API avec java, javax.net.ssl.SSLHandshakeException se produit
Afficher les spécifications de l'API avec Laravel + SwaggerUI + Docker
[Laravel] Comment gérer une erreur de mémoire insuffisante lorsque le compositeur a besoin de [Docker]
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker