2016-11-30 6 views
2

私のdocker-compose.ymlは複数の画像を指定します。これらの画像のうち2つは、同じローカルのDockerfileを使用して作成されています。それらは同じイメージ名を共有しますが、それぞれ異なるコマンドを持っています。ドッカーが同じ画像を複数回構築するのを防ぐ方法を教えてください。

開発中、私はよく画像を再構築するのにdocker-compose up --buildを使用します。問題は、ドッカーが同じmyimageを2回構築することです。必要以上に時間がかかります。

イメージは一度作成するだけでよいことを表現する方法はありますか?

ビルドの the docker-compose file documentationパー
version: '2' 
services: 

    abc: 
    image: myimage 
    command: abc 
    build: 
     context: . 
     dockerfile: Dockerfile 

    xyz: 
    image: myimage 
    command: xyz 
    build: 
     context: . 
     dockerfile: Dockerfile 
+0

CMDディレクティブをDockerfilesの先頭に置かない限り、ビルドキャッシングは2番目の実行に数秒しかかからないことを意味します。 2回目の走行にはどれくらい時間がかかりますか? – jwodder

+0

両方のビルドは、マシンに応じて約10秒かかる – Nick

+0

おそらく作成の外に構築? 'dockerビルド-t myimage。 &&ドッカーを作成する – Matt

答えて

2

、最初のサービスのためにbuild:image:を指定することは、その後のサービスのためにのみimage:

ここでは、(abcサービス用に)イメージを1回しか作成せず、そのイメージをxyzサービス用に再利用するサンプルを修正したものです。

version: '2' 
services: 

    abc: 
    image: myimage 
    command: abc 
    build: 
     context: . 
     dockerfile: Dockerfile 

    xyz: 
    image: myimage 
    command: xyz 
関連する問題