2017-04-21 4 views
2

私は現在、ファブリックを使ってdjangoアプリケーションのデプロイメントスクリプトを書いています。ロールバックが必要な場合に、アプリケーションが使用するvirtualenvをバージョン管理するシステムを持つことは、私には必要不可欠です。djangoデプロイメントのためのvirtualenvのバージョニング - 要件のpip出力

私がこれを行うと考えることができる最も堅牢な方法は、要件ファイルの内容のmd5ハッシュと同じ名前のvirtualenvを作成することです。これは、要件が変更されたときにチェックサムが変更され、virtualenvを新しいハッシュでコピー/更新し、ロールバックが必要な場合に備えて古いハッシュvirtualenvを保持できることを意味します( '現在の'シンボリックリンクを変更するだけです) 。

問題があります。たとえば、次のようなネストされた要件ファイル構文を使用しています。私のproduction.txt要件ファイル(-r base.text)ですので、md5ハッシュは基本要件の変更などを考慮しません。

これらのファイルをインストールする前に解析する出力ピップはありますか?私はそれらをインストールしてから、何かが変更されたかどうかを判断するためにピップフリーズする必要はありません。

+1

私には分かりません。要件ファイルを使用していて、gitのようなコードのバージョン管理をしている場合は、ロールバックしても要件ファイルをロールバックしませんか? – Daniel

答えて

1

ネストされた要件を使用する代わりに、catのような単純なUNIXツールを使用してmd5を計算してみませんか。複数の要件ファイルを使用するだけです。

本当に私たちにネストされた要件が必要な場合は、-r file.txt用にgreppedした小さなシェルスクリプトを作成し、それをmd5計算に追加する必要があります。

これはちょっとしたアイデアです。 requirements.txtファイルをハッシュし、その名前を使ってenvを保存する。分散したビルドシステムでも簡単かつ高速にキャッシュすることができます。

関連する問題