如何防止docker-compose多次构build相同的图像?

docker-compose.yml指定了多个图像。 其中两个图像是使用相同的本地Dockerfile 。 他们共享相同的图像名称,但每个都有不同的命令。

在开发过程中,我经常使用docker-compose up --build来重build图像。 麻烦的是,dockerbuild立了两次相同的myimage – 需要的时间超过了必要的时间。

有没有办法expression图像只需要build立一次?

 version: '2' services: abc: image: myimage command: abc build: context: . dockerfile: Dockerfile xyz: image: myimage command: xyz build: context: . dockerfile: Dockerfile 

根据构build的docker-compose文件文档 ,指定build:image:为第一个服务,然后指定image:为后续服务。

以下是您的示例的修改版本,只生成一次图像(用于abc服务),并重新使用该图像进行xyz服务。

 version: '2' services: abc: image: myimage command: abc build: context: . dockerfile: Dockerfile xyz: image: myimage command: xyz