2017-02-03 7 views
0

私はいくつかのコンテナを持っていて、それぞれのコンテナには独自のDockerfileがあります。私が構築するたびに、ドッカーを使ってbuildを作成すると、各コンテナにはそれぞれ独自の要件が適用されます。 requirements.txtファイル(RUN pip install -r requirements.txt)から、またはDockerファイル(RUN pip install Django, celery, ...)から直接入手できます。いくつかのコンテナ(ほぼすべて)には多くの要件が共通しています。Dockerは共有ディレクトリにインストール要件を作成します

完全に動作していますが、ビルド時間に問題があります。すべてのコンテナを最初から構築するには、およそ45分かかります。 (すべての画像とコンテナを削除した後で)

新しいコンテナが作成されるたびに一般的な要件をインストールしないように、すべてのコンテナの共通ディレクトリにすべての要件をインストールする方法はありますか?私が使用しています

ドッカー-COMPOSEは、あなたがあなた自身の基本イメージを定義することができますバージョン2

答えて

1

です。

FROM python:3 

RUN pip install django boto 

# more docker commands 

次にあなたがarrt_dtu/envbaseとしてこのイメージを構築することができますし、どこかで(dockerhub、あなたの会社の内部ドッカ環境を)それを公開:のは、すべてのコンテナがあなた自身のDockerfileを作成することができ、例えばジャンゴとのboto必要としましょう。

FROM arrt_dtu/envbase 

RUN pip install ... 

これは、たとえば、ルビー画像とまったく同じ原理です。ルビーはLinuxのものを使っています。あなたがレールイメージを望むなら、あなたはルビーのものも使うことができます。ドッカーの画像は完全に再利用可能です!

関連する問題