pip
をインストールした依存関係が必要なPythonアプリケーションの開発環境を維持したいと考えています。Dockerとpipの要件
gitリポジトリからドッカーボリュームとしてマウントされたホストフォルダにソースコード(requirements.txt
を含む)をプルする予定です。
ライブラリーの更新を維持しながら、すべてgit pull
の高価なpip install -r requirements.txt
を避けるためのドッカーパターンはありますか?
pip
をインストールした依存関係が必要なPythonアプリケーションの開発環境を維持したいと考えています。Dockerとpipの要件
gitリポジトリからドッカーボリュームとしてマウントされたホストフォルダにソースコード(requirements.txt
を含む)をプルする予定です。
ライブラリーの更新を維持しながら、すべてgit pull
の高価なpip install -r requirements.txt
を避けるためのドッカーパターンはありますか?
毎回のインストールを避ける方法は、別のRUN
命令でpip install
を実行してから、レポ全体をプルすることです。 requirements.txt
の内容が、その後変更されていない場合、
ADD https://raw.githubusercontent.com/etc/requirements.txt .
RUN pip install -r requirements.txt
あなたはdocker build
この:完全なリモートURLを指定して、多分ADD
で - あなたはrequirements.txt
容器にを取得するための別の方法が必要となりますことを行うために、すべてのインストールされた依存関係を持つキャッシュされたレイヤーが使用されます。要件ファイルが変更された場合、インストールは再度実行されます。
これに従うと、要件ファイルに特定のバージョンが必要になり、バージョンバンプを手動で更新する必要があります。
しかし、このアプローチでは、 'git pull'を実行するたびに私のローカルマシンで画像を' docker build 'してから' pip install'する必要があります。作業を続ける前に10〜15分待ちます?もちろん、 'requirements.txt'が変更されなかった場合、イメージは変更されずに残ってディスクスペースを節約します。私は 'git pull'の後に待ち時間を避けることも望んでいました。 – max
どのような解決策をお探しですか? 「推奨事項」や「ベストプラクティス」を求める質問は、「広すぎる」としばしば閉じられます。 –
@BurhanKhalid私の質問を編集しました。今はそれほど広いとは思わない。 – max
ほとんどの場合、DockerコンテナにPythonの依存関係をインストールし、それを画像として保管しなければなりません。あなたのレポを引くたびに、最新の(または関連するもの)Dockerイメージを引き出し、同じイメージで構築されたコンテナにマウントします。依存関係が更新されたときに手動でコンテナを更新し続ける必要があります。あなたはビルドのプロセスでそれを保持することで、プッシュするたびにイメージを構築することで利益を得るかもしれません。 – activatedgeek