名称和查询Docker标记

docker-tag-naming的Python项目详细描述


动机

在构建复杂的Docker生态系统时,重要的是对每个 在将Docker推送到注册表之前生成。这样你就可以搬回去了 并通过使用不同版本的Docker图像及时转发,pin 不同标签的生产/质量保证/准备环境等。

安装

$ pip install --upgrade docker-tag-naming

命令

使用Docker标记命名带来的最有趣的功能之一 现在是否可以查询特定分支中哪个标记是最新的:

$ docker-tag-naming latest andresriancho/w3af develop
v112-01460cd-develop

根据我们的约定,112是版本号,01460cdgit commit id和development是分支。

可以手动伪造一个新的版本标记,以便在任何注册表中使用 图像:

$ docker-tag-naming forge --version 332 --commit-id cd14580 --branch master
v332-cd14580-master

但最有趣的功能是bump版本:

$ docker-tag-naming bump andresriancho/w3af develop --commit-id cd14580
v113-cd14580-develop

请注意,113是通过从 andresriencho/w3af存储库并执行+1操作。

连续交付使用

下面是几个示例,演示如何使用 连续交货。首先在基础图像中使用bump标记并推动 版本:

$ export NEXT_TAG=`docker-tag-naming bump username/base-image ${BRANCH} --commit-id ${COMMIT_ID}`
$ docker tag username/base-image username/base-image:$NEXT_TAG
$ docker push username/base-image:$NEXT_TAG

然后在使用基础图像的构建中,查询最新的:

$ export LATEST_TAG=`docker-tag-naming latest username/base-image develop`
$ render-compose --latest-base-image $LATEST_TAG
$ docker-compose up

使用这些步骤将确保始终使用最新的可用图像 在你的建筑里。

身份验证和专用图像

要列出来自私有图像的标记名,Docker Tag Naming需要 凭据,可以使用环境变量registry用户设置 以及注册表通行证

$ export REGISTRY_USER=username
$ export REGISTRY_PASS=password
$ docker-tag-naming bump username/private develop --commit-id cd14580

重要免责声明

Docker注册表/中心(https://registry.hub.docker.com/)似乎有延迟 在通过web界面(您的浏览器)显示的内容和rest api之间。 在连续集成中使用这些命令时要考虑到这一点 脚本,因为您最近推送的标记可能不会立即出现!

作为一种解决方法,一个有用的命令是docker tag naming refresh 将查询API,直到有新版本可用或达到超时:

$ docker-tag-naming refresh username/base-image develop
Initial version is v113-cd14580-develop , waiting for new release...
New version found: v114-5151bc0-develop

$ docker-tag-naming latest andresriancho/w3af develop
v114-5151bc0-develop

报告错误

docker-tag-naming’s issue tracker中报告您的问题和功能请求,我们将 非常乐意修理它们。

拉请求是非常受欢迎的!

生成状态

https://circleci.com/gh/andresriancho/docker-tag-naming.svg?style=svg

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

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?