2017-10-28 5 views
0

ビルドフォルダーを提供するドッキングイメージ(公式のnginxイメージに基づく)を作成しました。私の問題は、テスト環境とプロダクト環境の両方で使用できるユニークなイメージがあることです。私は環境ごとに異なるイメージを持っているのではなく、代わりにコンテナのスタートアップコンフィギュレーションを利用して、コンテナをテストまたはプロードコンフィグレーションで実行したいと考えています。つまり、ビルドタスクから切り離されたビルドタスクの一部をビルド上に適用することができます。admin-on-restランタイムコンフィグレーションのサポート

私のカスタムhttpで使用されるバックエンドエンドポイントを除いて、2つの環境に違いはありませんクライアントはadmin-on-restアプリ内にあります。

このような設定がサポートされているか、thisのようなものを実装する必要がありますか?

おかげ

答えて

1

あなたはnginxのが使用するアドレスを更新し、あなたのイメージに新しいスクリプトを追加することによって、このような何かを得ることができます:

#!/bin/bash 

if [[ ! -z "$PROD" && "PROD" != '0' ]] ; then 
    sed -i 's/address_in_file/test_env_address/g' /etc/nginx/conf.d/default.conf 
else 
    sed -i 's/address_in_file/prod_env_address/g' /etc/nginx/conf.d/default.conf 
fi 

nginx -g daemon off 

はそれは素敵な解決策ではないのですが、それは動作します。

address_in_fileは

test_env_addressスクリプトは、環境変数PROD = 0(あるいはまったくPROD)

で開始された場合に表示されるように新しいアドレスは、あなたの設定ファイルに定義された現在のバックエンドアドレスであります

prod_env_addressはプロダクションアドレスです

+0

これは間違いなくちょっとしたことでも機能します。私は、[こちら](https://github.com/angular/angular-cli/issues/3855#issuecomment-274803729)に示された方法よりもこのアプローチを好む。他のオプションがあるかどうかわかりません...もしそうでなければ、あなたが提案したものと一緒に行きます。ありがとう! –

+0

ps:nginxではなく、ブラウザ(つまり、jsファイルに含まれています) –

+0

別の方法が見つかった場合は、私も同様のものを使用していますので、私はそれを誇りに思いません – Stefano