Docker、Jenkins、Harbor 构建镜像部署 SpringBoot 项目

   日期:2024-12-27    作者:b940914 移动:http://mip.riyuangf.com/mobile/quote/66329.html

Harbor 是由 VMware 公司开源的企业级的 Docker Registry 管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有 web 管理功能,有了它之后能够很方便的管理容器镜像,搭配 Jenkins 使用很是方便。

Harbor 由多个组件组成,每个组件都是以 Docker 容器的形式构建的,因此,我们使用 Docker Compose 来对它进行部署。用于部署 Harbor 的 Docker Compose 模板位于 harbor/docker-compose.yml 中,这个模板文件中有多个镜像定义,常见有:harbor-log、harbor-db、harbor-core、harbor-portal等等,版本不一样,所以依赖的容器熟练不一样,需要借助 docker-compose 去加载 docker-compose.yml 工程配置文件来启停 Harbor 组件容器。

所以我们需要提前安装好Docker Compose

1、下载 Docker Compose,设置权限

 
 

1、下载安装包

官网地址:https://goharbor.io/

下载地址: https://github.com/goharbor/harbor/releases

这里直接用 wget 下载,可能会因为网络问题下载比较慢,这里可以自行使用迅雷下载,下载完成后上传到相应的服务器上

wget 方式下载(比较慢:wget https://github.com/goharbor/harbor/releases/download/v2.5.1/harbor-offline-installer-v2.5.1.tgz

2、解压配置

 

barbor.yml示例如下

 

编辑完执行 install.sh 脚本进行安装

 

报了一个错误,提示我现在的版本是 1.13.1 ,需要安装 17.06.0 以上的版本

 

第一步

 

第二步

 

重新执行 install.sh 安装 harbor

 

4、访问 harbor

 
 

这里我只用了同一台服务器配置,如果大家有多个服务器的,可以在另一台安装 docker,编辑 daemon.json 把 IP 修改成安装 harbor服务器的 IP 即可。

 

执行 push 时出现以下错误

 

原因分析
错误提示对存储库访问未经授权,这是因为 harbor 上的访问认证导致的,需要在服务器上进行 harbor 仓库登录。

 
 

另外一种登陆

 
 

登录以后我们再次推送

 
 

这里我们删除镜像再从仓库 pull 下来

 
 
 
 
 

如果要借助 Jenkins、Maven 等工具将构建好的Docker images push 到某个服务器的 Docker 上,就必须开启该服务中 Docker 的远程连接接口。比如,我通过 Jenkins 将镜像推送到 192.168.2.129 的 Docker 服务里面,就在这个服务里面配置 Docker。

1、编辑 Docker 服务的配置文件

 
 

在 ExecStart 这里加入如下内容

 

在 /etc/docker/daemon.json 中写入以下内容

 
 
 
 

4.1、引入 Docker 插件

 

4.2、编写 Dockerfile

 

这里需要主要一点:Dockerfile 文件和 pom.xml 同一级才能生效,不然 jenkins 构建会报错

push 代码到 gitee 上面

4.3、jenkins 中在创建的任务中配置打包构建并且 images 镜像推送

最后启动镜像

 
 
 
 

这里有个问题就是,因为我所有的操作都是在同一个服务器完成,在实现功能的过程中出现了很多的问题,最后都找到解决的办法,大家可以实现多服务器分配操作不同的功能,例如

名称IP地址安装软件基础服务器192.168.0.1Docker、Jenkins、SonarQube、JDK、Maven、GitDocker仓库服务器192.168.0.2Docker、Harbor部署应用服务器192.168.0.3Docker

大致的流程图如下


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号