Docker-composer ensemble d'utilisateur et de groupe sur le volume monté
Je suis en train de monter un volume dans le panneau-composer à apache de l'image. Le problème, c'est que apache dans mon menu fixe est exécuté sous www-data:www-data
mais la montée répertoire est créé en vertu de root:root
. Comment puis-je spécifier l'utilisateur du répertoire monté?
J'ai essayé d'exécuter la commande setupApacheRights.sh
. chown -R www-data:www-data /var/www
, mais il dit chown: changing ownership of '/var/www/somefile': Permission denied
services:
httpd:
image: apache-image
ports:
- "80:80"
volumes:
- "./:/var/www/app"
links:
- redis
command: /setupApacheRights.sh
Je préfère être en mesure de spécifier que l'utilisateur sous lequel il sera monté. Est-il un moyen?
OriginalL'auteur simPod | 2016-11-07
Vous devez vous connecter pour publier un commentaire.
D'abord déterminer l'uid de l'
www-data
utilisateur:Ensuite, sur votre machine, changer le propriétaire du répertoire monté à l'aide de l'uid (100 dans cet exemple):
Dynamique D'Extension
Si vous utilisez
docker-compose
vous pourriez aussi bien aller pour elle comme ceci:Vous pouvez mettre dans un one-liner:
La
-u
drapeau imprimer uniquement lauid
à stdout.Non, en effet, il n'est pas dynamique (vous ne demandez pas pour qui). Mais avec un peu de piratage, vous pouvez construire certains scripts qui obtient les renseignements nécessaires (attendre la
DOCKER_IMAGE_ID
) de manière dynamique. Le problème de base est que les autorisations sont déterminés par le système d'exploitation hôte et l'efficacité de l'utilisateur par le conteneur lui-même.Veuillez consulter ma réponse. En outre, s'il vous plaît ajuster à votre question.
Qui ressemble beaucoup, merci
Génial! fixe mon problème, merci beaucoup pour cette astuce
OriginalL'auteur Arne L.