7

コンテナー内にアプリがあり、サービスにアクセスするためのパスワードと API キーの環境変数を読み取っています。(docker 内ではなく) 自分のマシンでアプリを実行するexport SERVICE_KEY='wefhsuidfhda98'と、アプリはそれを使用できます。

これに対する標準的なアプローチは何ですか?exportコマンドでサーバーに追加され、そのファイルで実行される秘密のファイルを持つことを考えていましたsource

私はドッカーとイチジクを使用しています。

4

2 に答える 2

5

私が解決した解決策は次のとおりです。環境変数をシークレット ファイルに保存し、それらを fig を使用してコンテナーに渡します。

  • secret_env秘密情報を含むファイルを持っている、例えば

    export GEO_BING_SERVICE_KEY='98hfaidfaf'
    export JIRA_PASSWORD='asdf8jriadf9'
    
  • secret_env私の中に持っている.gitignore
  • 開発者用のsecret_env.templateファイルがあります。

    export GEO_BING_SERVICE_KEY=''  # can leave empty if you wish
    export JIRA_PASSWORD=''  # write your pass
    
  • fig.ymlの場合、変数を次の方法で送信します。

    environment:
     - GEO_BING_SERVICE_KEY
     - JIRA_PASSWORD
    
  • source secret_env建てる前に電話する
于 2014-12-18T15:05:35.473 に答える
4

docker run環境変数を提供します:

docker run -e SERVICE_KEY=wefsud your/image

次に、アプリケーションは環境から SERVICE_KEY を読み取ります。
https://docs.docker.com/reference/run/

図では、使用します

environment:
  - SERVICE_KEY: wefsud

アプリの仕様で。 http://www.fig.sh/yml.html

セキュリティの観点からは、Docker バイナリに root アクセスが必要な場合、前者のソリューションはホストで実行するよりも悪くありません。「docker」グループのユーザーに docker の実行を許可している場合、すべての docker ユーザーがdocker inspectコンテナーを実行できるため、安全性が低くなります。ホスト上で実行している場合、実行中のプロセスの環境変数を調べるには root になる必要があります。

于 2014-12-18T14:09:47.280 に答える