2016-04-02 18 views
0

私は現在、作業中のPythonアプリケーション用のいくつかのテストを実行するために、ドッカーイメージを構築してコンテナを実行しています。現在、Dockerファイルはファイルをホストマシンからコピーし、作業ディレクトリをコピーしたファイルに設定し、sudo-apt getとinstalls pipを実行し、最後にsetup.pyからテストを実行します。 Dockerfileは以下の通りです。Dockerイメージを構築する方法quciker

`FROM ubuntu 

ADD . /home/dev/ProjectName 

WORKDIR /home/dev/ProjectName 

RUN apt-get update && \ 
    apt-get install -y python3-pip && \ 
    python3 setup.py test 

`

とピップ私がテストを実行したいたびにインストールapt-getをapt-getを実行することを避けるために多くの従来の方法があった場合、私は興味がありました。私が持っていた主なアイデアは、すでにピップを付けた画像を作成し、その画像からこの画像を作成することでした。

+0

Dockerfileを変更したいが、ビルド時間を最小限にしたい場合は、Dockerファイルの最後に変更を加えて、Dockerができるだけ多くのキャッシュを再利用できるようにします。 Dockerは、変更が行われたことを最初の行から再構築します。 –

答えて

2

可能であれば、キャッシュされたレイヤーを使用してDockerをビルドします。変更したファイルを追加すると、後続のすべてのルールのキャッシュが無効になります。 aptコマンドを最初に置くと、それらは初めてビルドするときにのみ実行されます。詳細はthis blogを参照してください。

関連する問題