2013-07-23 9 views
60

私は開発と生産という2つの支店を持っています。それぞれに依存関係があり、その中にはいくつかのものがあります。開発は、開発中の依存関係を示します。生産の場合も同様です。私は、各ブランチの依存関係を 'requirements.txt'という単一のファイルに期待するHerokuにデプロイする必要があります。requirements.txtを複数の環境でカスタマイズする方法は?

整理するにはどうすればよいですか?

私が考えたもの:(?環境変数を)

  • 、各ブランチ内の1つの(!頻繁にマージを乗り切る必要があります)
  • 要件は、私が使用するファイルHerokuのを教える個別の要件ファイルを維持します
  • あなたの要件ファイルをカスケード接続し、「-r」FLAを使用することができます
+1

デプロイメントスクリプトが簡単: は2つのファイルを管理します。それらの間でシンボリックリンクを使用します。 – Udy

答えて

107

(一時ブランチを削除し、展開し、コミット、要件ファイルを変更、一時ブランチを作成)するスクリプトを展開書きますgは、あるファイルの内容を別のファイルの内容に含めるようpipに指示します。

`-- django_project_root 
|-- requirements 
| |-- common.txt 
| |-- dev.txt 
| `-- prod.txt 
`-- requirements.txt 

ファイルの内容は、次のようになります:あなたはこのようなモジュラーフォルダ階層にあなたの要件を破ることができる

common.txt:

# Contains requirements common to all environments 
req1==1.0 
req2==1.0 
req3==1.0 
... 

dev.txt:

# Specifies only dev-specific requirements 
# But imports the common ones too 
-r common.txt 
dev_req==1.0 
... 

prod.txt:

Herokuのの
# Same for prod... 
-r common.txt 
prod_req==1.0 
... 

外では、あなたができるようになりました。このような設定環境:

pip install -r requirements/dev.txt 

またはHerokuのは、プロジェクトのルートに "requirements.txt" のために特別に見えるので

pip install -r requirements/prod.txt 

、それだけでするべきミラープロード:

requirements.txt:

# Mirrors prod 
-r requirements/prod.txt 
+2

herokuのさまざまな環境で個別の要件ファイルを使用する方法の問題を無視しました。 –

+9

私は私の答えがそれに対処したと信じています。 –

+1

ステージング(追加のデバッグパッケージが必要な場合)と本番環境(これらのデバッグパッケージが必要ない場合)のために、Herokuに異なる要件がある方法を探していました。残念ながら、@ EJJが述べたように、この答えはこれに対処していません。 –

関連する問題