2017-02-13 3 views
1

私はDockerを使用してASP.NET Core Web APIのマイクロサービスを展開しており、各コンテナに構成を注入するためのオプションを検討しています。アプリケーションのルートディレクトリでappsettings.jsonファイルを使用する標準的な方法は理想的ではありません。なぜなら、わかるように、ファイルをドッカーイメージに組み込むことで、イメージが実行できる環境が制限されるからです。ドッキング・コンテナーで実行されている.NET Core Web APIサービスにアプリケーション構成を提供するにはどうすればよいですか?

イメージを一度構築しておくと、実行時に構成を提供でき、環境ごとにイメージを作成せずにdev、test UAT、Productionにテストできます。環境変数を経由して設定を提供

  1. オプションがあるように見えます。ちょっと退屈だと思う。

  2. どういうわけかappsettings.jsonが座っているホストサーバー上の標準の場所にコンテナ内のパスをマッピングし、ドッキングウィンドウの実行コマンドの値を提供することが可能である(どのように?)
  3. これをピックアップするサービスを取得ライン?

誰もこの経験がありますか?コードサンプル/指示、特にオプション2)を提供することができますか?現時点では最高のようですか?

答えて

2

現在、他のパッケージングシステムを使用しています(ドッキングステーション自体ではありません)が、同じ問題を抱えています。どの環境でもパッケージを展開できます。だから、

、我々は今それをやっている方法:

  1. 使用する外部構成管理システム環境ごとの設定を保持し、管理するための
  2. 注入する私たちのパッケージへの基本的な環境変数は、構成管理システムの接続を保持するために、詳細

このようにして、パッケージはほぼすべての「既知の」環境で実行できるだけでなく、実行時の構成管理も可能になります。

あなたがドッキングウィンドウを実行しているとき、あなたはrunコマンドのenvironment variable options使用することができます。

$]ドッキングウィンドウの実行-e "ディープ=紫" ...

+0

を参照してください。どのような外部構成システムを使用していますか、どのように環境変数を設定して注入しますか? 'docker run'コマンドラインとconfigを設定する関連コマンドの例を挙げてください。 – Peter

+0

カスタムメイドのetcdベースの設定システム(キー値付きの簡略化されたapi)を実行しています。 envを設定しています。パッケージをビルドする際の変数(ドッカーを使用していません)がありますが、ドッカーの場合はenvを指定できます。 runコマンドの変数 - 回答を更新する。 – evgenyl

3

これは、データボリュームを作成することが可能ですドッカー画像/コンテナ内にある。また、ホストディレクトリをコンテナにマウントします。ホストディレクトリはコンテナ内でアクセス可能になります。

あなたがドッキングウィンドウの作成とドッキングウィンドウrunコマンドで-vフラグを使用してコンテナにデータボリュームを追加することができ、データボリューム

を追加します。

$ docker run -d -P --name web -v /webapp training/webapp python app.py 

これにより、/ webappのコンテナ内に新しいボリュームが作成されます。

マウントあなたはまた、コンテナにごドッカーエンジンのホストからディレクトリをマウントすることができ-vフラグを使用してボリュームを作成することに加えて、データボリューム

としてホストディレクトリ。

$ docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py 

このコマンドは、ホストディレクトリ/ src/webappを/ webappのコンテナにマウントします。

Docker Data Volumes

+0

あなたの答えをありがとう、私はあなたと他の答えの両方を選択しなければならなかった、正しい、私は今私が使用しているので、私は他の答えを選んだのだろうかと思います。私が見ていることから、環境変数を注入することは "ベストプラクティス"と思われ、Kubernetesのようなものを使ってコンテナの配備と管理を容易にします。しかし、もう一度感謝します。私はあなたが役に立つと答えて、投票したことを知りました。 – Peter

関連する問題