名称和查询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是版本号,01460cd是git 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