web-dev-qa-db-fra.com

Comment définir des variables d'environnement dans Dockerfile via Azure DevOps

Dans mon fichier Docker de projets, j'ai quelques variables d'environnement, comme ceci:

ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=Password
ENV MSSQL_PID=Developer
ENV MSSQL_TCP_PORT=1433 

Et je voudrais passer le mot de passe ici en tant que variable d'environnement définie dans mon pipeline.

Dans Azure DevOps, j'ai deux pipelines. Un pour créer la solution et un pour créer et pousser des images de docker vers DockerHub. Il existe des options pour définir des variables dans ces deux pipelines: enter image description hereenter image description here J'ai défini le mot de passe dans les deux pipelines et modifié mon mot de passe dans le Dockerfile pour qu'il ressemble à ceci:

ENV SA_PASSWORD=$(SA_PASSWORD)

Mais cela ne semble pas fonctionner. Quelle est la manière correcte de transmettre des variables d'environnement d'Azure DevOps à une image Docker?

Est-ce également un moyen sûr de transmettre des secrets? Est-il possible que quelqu'un puisse lire les secrets d'une image Docker?

Merci!

2
PalBo

J'utilise l'extension Replace Tokens pour exactement des tâches comme celle-ci: https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens

Cependant, mettre des secrets dans votre Dockerfile n'est peut-être pas la meilleure idée. Habituellement, vous fournissez des secrets ou généralement une configuration d'exécution en tant que variables d'environnement lorsque vous exécutez réellement le conteneur.

0
silent