文章插图
虽然可能有上千种版本的Docker映像版本,但我将向您展示一个非常简单的方法,即使用已经非常普遍的方法 。它将确保图像的版本与Git版本标签匹配,因此您可以确切知道图像内包含哪些代码 。
本教程假定您已经具有构建映像的Dockerfile 。
版本文件
首先,创建一个VERSION文件,其中只包含版本号:
0.0.1您需要将此VERSION文件存储在映像中以确保完整性(并且因为您的程序可以使用它来显示版本),因此请在Dockerfile中添加以下内容:
ADD VERSION .这会将VERSION文件添加到您的WORKDIR 。
构建脚本
如果您还没有构建脚本,请创建一个并将其命名为build.sh 。最简单的形式就是运行您的docker build:
set -ex# SET THE FOLLOWING VARIABLES# docker hub usernameUSERNAME=treeder# image nameIMAGE=helloworlddocker build -t $USERNAME/$IMAGE:latest .您可能需要在此处执行一些额外的构建步骤,因此请继续添加它们 。或者您可能有自己的构建脚本,在这种情况下,您可以忽略此脚本,而只需更改下面脚本中的行即可运行构建 。确保使用chmod a + x ./build.sh以便可以运行它 。
Release脚本
现在,让我们创建一个名为release.sh的简单发布脚本,该脚本将提高版本,运行构建脚本,设置git标签,将标签推送到GitHub,构建映像,最后将映像推送到Docker Hub 。您可以复制并粘贴以下脚本-只需确保更改顶部的值以匹配您的Docker Hub信息即可:
【Docker映像进行版本控制】set -ex# SET THE FOLLOWING VARIABLES# docker hub usernameUSERNAME=treeder# image nameIMAGE=helloworld# ensure we're up to dategit pull# bump versiondocker run --rm -v "$PWD":/App treeder/bump patchversion=`cat VERSION`echo "version: $version"# run build./build.sh# tag itgit add -Agit commit -m "version $version"git tag -a "$version" -m "version $version"git pushgit push --tagsdocker tag $USERNAME/$IMAGE:latest $USERNAME/$IMAGE:$version# push itdocker push $USERNAME/$IMAGE:latestdocker push $USERNAME/$IMAGE:$version使用chmod a + x ./release.sh使其可执行,然后使用./release.sh使其运行 。
每次发布时,只需运行./release.sh,您将获得与源代码相匹配的精美版本的映像!
翻译自:https://medium.com/better-programming/how-to-version-your-docker-images-1d5c577ebf54
推荐阅读
- 如何对网站进行渗透测试 从网站登录功能着手
- 对硬盘进行分区时,GPT和MBR有什么区别?
- Docker为什么这么火?
- 借助minid工具优化Dockerfile分层
- Docker下搭建Apache+PHP+Mysql
- docker和虚拟机的区别
- 普洱茶申报全球重要农业文化遗产工作顺利进行
- 推荐docker file这种方法 Docker3-Dockerfile创建镜像的方法
- Dockerfile制作镜像精简之道
- 安装docker-machine的两种方法