一、需求描述
Java开发的源码,需要编译成docker镜像,并推送到指定的私有仓库。
二、准备工作
1. git 源码环境准备
公司私有仓库 http://git.company.com/robin/testjava.git
image.png注意: Dockerfile 文件我也放在源码根目录下。也可以在源码目录下创建 docker 目录,然后将相关文件放进去。Dockerfile 文件的路径,后面会配置。
2. harbor 私有仓库环境准备
image.png创建项目 core_cms
, 并配置账户 test 为成员(这里设置为管理员)。私有读写。
# Docker Push Command
docker tag SOURCE_IMAGE[:TAG] reg.company.com/core_cms/REPOSITORY[:TAG]
docker push reg.company.com/core_cms/REPOSITORY[:TAG]
三、Jenkins 插件
1. docker-build-step
在Jenkins上的Docker集成,支持镜像的编译、推送、管理等。
配置 docker agent
进入 “系统管理” - “系统配置”,找到 “Docker builder”。
- 如果docker在jenkins服务器本地,配置为
unix:///var/run/docker.sock
。 -
如果使用另外一台docker服务器,则填写 docker api 接口信息。
image.png
2. Version Number Plugin版本
支持生成更复杂的版本信息。
在 “某任务” - “配置” - “构建环境” 找到 “Create a formatted version number”。这里配置 增加变量BUILD_VERSION
,格式为 ${BUILD_DATE_FORMATTED, "yyyy-MM-dd"}.${BUILD_NUMBER}
。如图:
3. 配置git 和 harbor 需要的认证
“系统管理” - “Manage Credentials” - “system” - "全局凭据" - "Add Credentials" ,配置用户名和密码
image.png四、Jenkins 配置
实现过程描述
-- 拉取git源码,mvn编译生成 jar 文件。
-- 在Post Steps,选择编译成功后执行docker指令
Creat/build image
--)Tag image
*2 --)Push image
*2 --)Remove image
1.创建一个maven项目
2. 编译来自git的文件,生成jar包
image.png3. Creat/build image
该编译过程完成后,默认生成 $BUILD_NUMBER:latest
名称的镜像
4. Tag image
将$BUILD_NUMBER:latest
名称的镜像,重新tag为需要的格式
在jenkins服务器上,表现如下:
image.png
网友评论