web-dev-qa-db-ja.com

Azure DevOpsを介してDockerfileで環境変数を設定する方法

私のプロジェクトのDockerファイルには、次のようないくつかの環境変数があります。

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

ここで、パイプラインに設定された環境変数としてパスワードを渡したいと思います。

Azure DevOpsには2つのパイプラインがあります。 1つはソリューションの構築用、もう1つはDockerHubへのDockerイメージの構築およびプッシュ用です。これらのパイプラインの両方で変数を設定するオプションがあります。 enter image description hereenter image description here 両方のパイプラインでパスワードを設定し、Dockerfileで次のようにパスワードを編集しました。

ENV SA_PASSWORD=$(SA_PASSWORD)

しかし、それはうまくいっていないようです。 Azure DevOpsからDockerイメージに環境変数を渡す正しい方法は何ですか?

また、これは秘密を渡す安全な方法ですか?誰かがDockerイメージから秘密を読み取る方法はありますか?

ありがとう!

2
PalBo

私はこのようなタスクにReplace Tokens拡張を使用しています: https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens

ただし、Dockerfileにシークレットを配置することは最善の方法ではない場合があります。通常、実際にコンテナを実行するときに、シークレットまたは一般にランタイム構成を環境変数として提供します。

0
silent