如何防止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