我正在考虑以下用例:
现在,比方说,我想添加到扩展第一个监控功能的所有图像,因此我修改了第一个。
有没有办法,一种工具,一旦基础图像的构建完成,会在我的本地环境中触发所有孩子的自动构建?
答案 0 :(得分:0)
我是我们的组织,我们有一个git repo,包含我们所有的基本图像(包括列表中的1和2),即Dockerfiles。特定于应用程序的图像留给各个团队及其回购(列表中的3个)
我们只有一个简单的shell脚本,可以按顺序构建和发布每个图像。每次登录此图片仓库都会在我们的CI系统中触发构建(http://www.go.cd/),从而最终再次构建所有图像。
设置简单,但有大约10个基本图像,大约3个深度,这对我们很有用。
答案 1 :(得分:0)
我们将Jenkins与git和docker插件一起使用。我们的Dockerfiles存储在一个git仓库中,每个Dockerfile和支持文件都有一个目录。然后在Jenkins中我们设置依赖项(手动),并在代码在git中更改时构建任何父图像的子图像。
答案 2 :(得分:0)
您可以尝试使用一个名为docker-bakery的小工具来分析dockerfiles
的结构,并在父图像更改时启用分层构建。
例如,当dog
图像更改时,子图像可以自动重建。
├── alpine-java
│ ├── bird
│ └── mammal
│ ├── cat
│ ├── dog
│ │ ├── dobermann
│ │ │ └── smaller-dobermann
│ │ ├── pitbull
│ │ └── labrador
│ └── horse
└── scratch
└── fish
dog
重建时的调用可以简单如下:
$/docker-bakery-example> cd dog
$/dog> make build-major-all
...
// docker build of child images
...
$/dog> make push-major-all
以下是example project dockerfiles
和make
文件,使用非常方便。