2017-03-13 2 views
2

Je suis à la recherche d'une solution "propre" pour partager un volume et partager les autorisations. Je veux dire, si c'est possible, j'aimerais avoir le même utilisateur dans mon conteneur que l'utilisateur local qui l'a démarré.Docker autorise le volume utilisateur de l'hôte dans le conteneur

Actuellement, j'utilise:

docker run --rm -v ~/Projects/:/projects/ mycontainer 

Il fonctionne, mais le problème est, quand mon récipient écrit une partie du contenu dans ce volume, il est la racine qui est le propriétaire et pas mon utilisateur local.

Quelle est la meilleure façon de gérer ce problème? Si c'est possible, je ne souhaite pas créer d'informations utilisateur dans le fichier Docker, car je souhaite partager ce conteneur avec des collègues et éviter tout problème d'autorisation entre l'utilisateur local et l'utilisateur du conteneur.

Merci

Répondre

1

Vous pouvez spécifier l'utilisateur sur la commande docker run:

--user, -u  Username or UID (format: <name|uid>[:<group|gid>]) 

Si vous utilisez l'UID numérique et GID de l'utilisateur hôte, les fichiers créés appartiendront à elle.

+0

Merci pour votre réponse, mais avec cette solution, je dois préalablement créer un utilisateur avec le même uuid? Parce que mon conteneur fonctionne actuellement avec le compte root et lorsque j'ajoute le paramètre --user, cela ne fonctionne pas. Je pense que c'est parce que j'ajoute une clé SSH à l'utilisateur root et avec le paramètre utilisateur, j'utilise un autre utilisateur et donc la clé n'est pas trouvée. – Matt

1

Merci pour votre aide Henry.

Ma solution complète était:

docker run --rm -e USER_ID=$(echo "$UID") -v ~/Projects/:/projects/ mycontainer 

Et j'ai ce script comme valeur entrypoint:

#!/bin/bash 
adduser -D -u $USER_ID alpine &>/dev/null 
cd /projects/ 
su alpine -c 'mycommand ...." 

Avec ce mon conteneur peut accéder et ajouter/modifier le contenu dans le dossier Projets avec le mêmes autorisations que mon utilisateur local.