4 votes

Docker secrets passés en tant que variable d'environnement

J'ai mis le docker en mode swarm et j'ai fait ce qui suit

echo "'admin'" | docker secret create password -
docker service create \
--network="host" \
--secret source=password,target=password \
-e PASSWORD='/run/secrets/password' \

Je n'ai pas réussi à passer le secret du mot de passe créé via une variable d'environnement à travers le service docker.

S'il vous plaît aidez-moi à trouver où je me trompe

Cordialement Satyanvesh

4voto

fab Points 908

Vous ne comprenez pas le concept des secrets Docker. L'objectif principal de la création de secrets est d'éviter de mettre des informations sensibles dans des variables d'environnement.

Dans votre exemple, la variable d'environnement PASSWORD portera simplement la valeur /run/secrets/password qui est un nom de fichier et non le mot de passe admin.

Un cas d'utilisation valide des secrets Docker serait que votre image docker lise le mot de passe à partir de ce fichier. Consultez la documentation ici en particulier l'exemple sur MySQL:

les variables d'environnement MYSQL_PASSWORD_FILE et MYSQL_ROOT_PASSWORD_FILE pointent vers les fichiers /run/secrets/mysql_password et /run/secrets/mysql_root_password. L'image mysql lit les chaînes de mots de passe à partir de ces fichiers lors de l'initialisation de la base de données système pour la première fois.

En résumé: votre image docker devrait lire le contenu du fichier /run/secrets/password

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X