我有一个构建docker镜像的项目,在我的情况下,它是mongo镜像的扩展,其中包含(在容器内部)数据。我使用此mongo docker镜像进行集成测试。
目前,尚未使用Maven构建项目。当我要发布此图像的版本时,我在计算机上这样做并不理想。
我想保留一个文件,其中包含我的docker镜像的当前版本(例如pom.xml)。
我应该怎么做,在项目中添加pom.xml以进行版本控制和maven-release-plugin,并添加一个简单的version.txt,以便在发布过程中进行更新?
还是有一个我不知道这样做的类似“docker.version”文件?
我在GitHub上发布了我的项目示例:https://github.com/Ameausoone/mongodb-docker-with-data
最佳答案
首先要为您拥有的每个项目都有一个特定的存储库。这有助于在将Docker镜像推送到存储库时不会弄乱它。
您可以使用管道脚本中的Shell脚本/命令来执行此处提到的所有命令。
将Docker镜像推送到存储库的方式有多种。
以auth-api为例,我们在jenkins中创建一个名为$ DOCKER_TAG的环境变量,并将其设置为创建构建的时间:
DOCKER_TAG: $(date +%Y%m%d).$BUILD_NUMBER
$ BUILD_NUMBER是Jenkins工作的一部分。现在,如下标记docker镜像:
docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:<DOCKER_TAG>
(假设您已构建docker镜像,并在执行上述步骤后将其推送到存储库。)
注意:Docker仅在与REPO-NAME匹配的情况下才允许推送镜像)
它有助于找出Docker镜像创建的日期和时间以及内部版本号。该镜像可以部署到不同的环境,例如dev,test,prod。
根据部署环境(即开发,测试,生产)标记Docker镜像。
使用
withenv
在管道脚本中配置环境变量,该变量可能类似于以下内容:docker tag DOCKER_IMAGE auth-api/<DOCKER_IMAGE>:$ENV
这将有助于具有特定于部署的Docker镜像。
您甚至可以根据git commit标记docker镜像。[未经亲自测试]