Selon la référence docker-compose et docker run, le user
L'option définit l'ID utilisateur (et l'ID de groupe) du processus en cours d'exécution dans le conteneur. Si vous le définissez sur 1000:1000
, votre serveur Web ne peut plus se connecter au port 80. La liaison à un port inférieur à 1024 nécessite des autorisations root. Cela signifie que vous devez supprimer le user: 1000:1000
ajouté déclaration à nouveau.
Pour résoudre le problème d'autorisation avec le volume partagé, vous devez modifier le propriétaire du répertoire. Exécutez chown 1000:1000 /path/to/volume
. Cela peut être exécuté à l'intérieur du conteneur ou directement sur le système hôte. Le changement est persistant et effectif immédiatement (aucun redémarrage de conteneur requis).
En général, je pense que le volume devrait être dans un sous-répertoire, par exemple
volumes:
- ./public:/var/www/html
Assurez-vous que le bon utilisateur possède ./public
. Si vous démarrez le conteneur et que le répertoire n'existe pas, docker le crée pour vous. Dans ce cas, le répertoire appartient à root
et vous devez changer de propriétaire manuellement comme expliqué ci-dessus.
Alternativement, vous pouvez exécuter le serveur Web en tant qu'utilisateur non privilégié (user: 1000:1000
), laissez le serveur écouter sur le port 8080 et modifiez le routage vers
ports:
- "8080:8080"