2017-12-27 24 views
0

私は反応反応のアプリケーションを作成しました。 .envファイルdocker-composeから反応するenv変数をオーバーライドします

REACT_APP_BACKEND_BASE_URL=http://localhost:8001 

内の変数によって定義された 私は、私は「糸のビルド」を使用して私のアプリを構築し、私は、ドッキングウィンドウのイメージにそれを格納します。私は私のドッキングウィンドウ-コンファイルからそれを上書きしたい

... 
    environment: 
     - REACT_APP_BACKEND_BASE_URL=http://localhost:8010 

が、

コンテナを開始するには、まだそれに.envファイルから値を使用した後。

ドッカー作成ファイルからそれを上書きすることができるのか、ビルド時に専用の.envファイルを設定/使用するのかが唯一の選択肢であるのだろうかと思います。

答えて

0

名前の変更あなたは、これは、ビルド時間はvarsのため.env.productionを追加動作しない場合は.envは

を.env.developmentするアプリ。

は、私は多くの人々に気づいたこれで苦労し、特にENVを渡す方法を代わりにDockerfileの条件スクリプティングのvarsは、私は単純化のGithubレポチュートリアル/作業例を提供https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#what-other-env-files-can-be-used

+0

ようVARSを参照するには、反応するアプリのホストを使用しています:IOWは、コンファイルを経由して提供される環境変数は無視されたり、正しくsettedされていません。 .env.productionは動作しますが、それは避けたいものです。 – Crixo

0

を参照してください。 LinkedInの記事で、公共の記事経由https://github.com/mikesparr/tutorial-react-docker

背景あなたが読むことを気にしている場合:

https://www.linkedin.com/pulse/dockerizing-your-react-app-mike-sparr/要するに


は、スクリプトを実行するために、あなたのDockerfile CMDを設定する必要があり、そのスクリプトが buildserver startの手順を実行します。これにより、実行時にコンテナーに渡すENV値をアプリで使用することができます。

覚えておくべきもう1つの点は、varsにREACT_APP_<yourvar>という接頭辞を付けることです。あなたのアプリで

、あなたがして.envファイルを削除process.env.REACT_APP_SOMEVAR

+0

複数の質問に同じ回答を加えないでください。最良のものに答え、残りを重複としてフラグを立てる。 「[複数の質問に重複した回答を追加することは可能ですか?](// meta.stackexchange.com/q/104227/206345)を参照してください。 –

関連する問題