连续自动生成/标记/推送多个Docker图像

multi-docker-build的Python项目详细描述


概述

这个包提供了一个脚本,在其中构建多个Docker容器 序列,使用某个目录中docker_images.txt文件的内容。 此文件用制表符分隔,以#开头的行被忽略。在

docker_images.txt中的每个非注释行的格式如下:

label    path/to/Dockerfile    comma,separated,options,if,desired

(任意空格)。默认情况下,图像 将通过在父级中运行docker build -t label -f Dockerfile .生成 Dockerfile的目录。将选项base_directory_build添加到 Dockerfile指定映像应使用以下内容生成:

^{pr2}$

在包含docker_images.txt的目录中。如果默认行为 可以接受,可以省略每行的第三个制表符分隔的部分。在

Docker图像将按顺序构建,因此图像可以引用结果 以前的图像,例如:

image-base    base/Dockerfile
image-dev     dev/Dockerfile

其中dev/Dockerfile包含:

FROM image-base
...

因为图像是用latest标记无条件地构建的,所以首先,然后 如果需要,用时间戳标记,不需要修改Dockerfile “发布”图像。在

容器构建脚本检查任何未初始化的Git子模块,以及 默认情况下,如果找到任何文件,则拒绝生成。如果出现以下情况,则可以重写此选项 期望(见下文)。在

生成选项write_git_version接受一个文件路径参数,该参数指向 写入git describe --dirty--always--abbrev=12的输出。例如:

image_label    path/to/Dockerfile    write_git_version=src/revision.txt

使用

此脚本提供的命令行入口点是 build_docker_images。默认情况下,图像将被标记为 :latest附加到基本映像名。在

选项:

--tag-timestamp
In addition to tagging images as ^{tt8}$, also tag with a timestamp in ^{tt15}$ format. All images in ^{tt1}$ are tagged with the same timestamp. Can be combined with ^{tt17}$.
--tag=tag_nameIn addition to tagging images as ^{tt8}$, also tag with the tag name provided. All images in ^{tt1}$ are tagged with the same tag name. Can be combined with ^{tt20}$.
--pushPush all built containers to Docker Hub, tagged as ^{tt8}$ and with any additional tags specified via ^{tt20}$ or ^{tt17}$.
--ignore-missing-submodules
Allow building Docker containers if ^{tt24}$ reports that at least one submodule is uninitialized.
--pretendRun in pretend mode: don’t actually execute anything (building, tagging, pushing).

要求

或者更新的Python脚本。Docker构建/标记/推送图像(版本 不重要)。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List