jenkins打包dokcer镜像
2022年2月14日
jenkins打包dokcer镜像
参考文档
https://blog.csdn.net/weixin_42988268/article/details/106047931
使用插件
docker-build-step
步骤
配置镜像打包
- 选择构建docker步骤
- 选择创建镜像
- 配置项目路径,一般是到打jar包的上一个路径,也就是dockerfile的位置来决定
- 配置镜像名称格式
私服地址/项目父目录/模块目录:模块名称-版本号-时间戳-代码哈希值
镜像上传
选择上传
配置镜像仓库镜像路径
配置镜像名称
命名规则:模块名+版本号+时间戳+git提交哈希值
xxx-v1.0-$BUILD_TIMESTAMP-$commit_id
$BUILD_TIMESTAMP 获取时间戳公共环境变量
$commit_id 代码提交哈希值
- 配置私云仓库账号
- 选择使用私云账号
- 成功标志
当jenkins日志出现此内容时,即为配置成功
实施中遇到的问题
镜像无法push问题
- 私云仓库镜像路径不存在
- 仓库账号不正确
- 仓库地址不正确,当仓库和jenkins在同一服务器时需要使用127.0.0.1否则无法连上私云
代码提交哈希值过长问题
https://blog.csdn.net/cngkqy/article/details/96927157
$GIT_COMMIT环境变量取到的名称过长,导致镜像展示和使用比较麻烦,使用shell直接截取后赋值给变量但是无法使用,原因是当shell执行完成后变量会被直接销毁不会传递到下面的构建中,需要进行存储再读取注入 使用jenkins环境变量注入插件EnvInject Plugin
- 使用shell对哈希值进行截取
- 使用shell对截取的哈希值保存成本地txt文件
- 使用jenkins环境变量插件,将哈希值注入环境变量
shell命令
使用shell截取8位的gitcommit哈希值, 保存截取到的哈希值到构建任务名称的txt文件中
commit=$GIT_COMMIT
id=${commit:0:8}
echo $id
sudo cat>/sh/$JOB_NAME.txt <<END
commit_id=$id
END
增加构建
填入哈希值存储txt文档目录
打包docker镜像失败
未开启Docker Rest API
https://blog.csdn.net/u010670411/article/details/83823628https://blog.csdn.net/feifei3851/article/details/81114278
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2355 -H fd:// --containerd=/run/containerd/containerd.sock
修改配置重启失败
https://blog.csdn.net/u012164509/article/details/108385773
无法正常将镜像上传到仓库
https://blog.csdn.net/qq_36715271/article/details/118413951
提示
内容正在完善中,请耐心等待...