2017-10-03 4 views
0

私は環境固有の変数を.envファイルから入手しています(私はdotenvパッケージを使用しています)。このファイルはバージョン管理されていません。awsコードビルドを使用してビルドシステム特有の環境ファイルを作成する方法

コードパイプラインステージcodebuildを使用すると、この.envファイルとその内容をどのように作成できますか?

ビルドスペックを使用して.envファイルにコンテンツを作成して追加する必要がありますが、どのように考えていないのでしょうか?

おかげ

答えて

0

は私の提案はdotenvを取り除くためにも、実際の環境変数を使用します。

dotenvの問題は、お客様のnodeプロセス内で単にprocess.envをごまかしたことです。それは実際にあなたの環境変数を変更するものではありません。彼らはあなたのnodeプロセス外では利用できません。

代わりにdirenvを使用し、.envファイルを.envrcに置き換えてローカル展開します。

CIおよび本番環境では、環境変数がCodeBuildプロジェクトで定義されるようになり、.envrcファイルは必要ありません。

別の角度からの詳細は、this related answerを参照してください。


あなたがdotenvを引き続き使用したい場合は、いくつかのオプションがあります。

  • ストアS3で.envファイルとビルドプロセスの間にそれを取得します。
  • CodeBuildプロジェクトで定義されたシェルスクリプトと環境変数を使用して.envファイルを構築します。

私は確かに他の人はいるが、彼らはすべて私のためにハッキーです。

+0

提案していただきありがとうございます。env parameter-storeの下にあるbuildspecにenv情報を格納する方法はありますか? – pkpk

+0

はい、それはリンクされた関連する答えが示唆しているものです。 – dashmug

1

だから、これはあなたのbuildspec.ymlに以下を追加することができます最初の答えの2番目のオプションを取って、実際に簡単なスクリプトです:

phases: 
    pre_build: 
    commands: 
    - printenv > .env 

シェルスクリプトprintenv > .envは、すべての出力に必要とされているすべてですあなたのプロセスのenvをファイルに追加します。

関連する問題