[英]How to release docker image with Jenkins pipeline
我有一个构建docker镜像的项目,在我的例子中,它是mongo image的扩展,它包含(在容器内)数据。 我使用这个mongo docker镜像进行集成测试。
目前,Maven不习惯构建项目。 当我想发布这个图像的版本时,我在我的电脑上做这个并不理想。
我想保留一个包含我当前版本的docker镜像的文件(如pom.xml)。
我该怎么办,在我的项目中为版本化和maven-release-plugin添加一个pom.xml,添加一个简单的version.txt,我在发布过程中更新了它?
或者是否有类似“docker.version”文件,我不知道这样做?
我在GitHub上发布了我的项目示例: https : //github.com/Ameausoone/mongodb-docker-with-data
首先是为每个项目设置一个特定的回购 。 这有助于在将Docker图像推送到存储库时弄乱它。
您可以使用管道脚本中的shell脚本/命令来执行此处提到的所有命令。
有多种方法可以将docker镜像推送到存储库。
基于时间和内部编号的标记:
以auth-api为例,我们在jenkins中创建一个名为$ DOCKER_TAG的env变量,并将其设置为创建构建的时间:
DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER
$ BUILD_NUMBER是Jenkins工作的一部分。 现在标记docker镜像,如下所示:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG>
(假设您已经构建了docker镜像并在标记上面的步骤之后将其推送到存储库。)
注意:只有匹配REPO-NAME时,Docker才允许推送图像)
它有助于找出docker图像创建日期和时间以及内部版本号。 此映像可以部署到dev,test,prod等不同的环境中。
根据环境进行标记
根据部署环境标记docker镜像,即dev,test,prod。 使用withenv
在管道脚本中配置环境变量,它可能如下所示:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV
这将有助于部署特定的docker镜像。
你甚至可以根据git commit标记docker镜像。[未亲自测试]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.