目录
安装Harbor
Harbor基本使用
Jenkins容器制作镜像并推送到Harbor
Jenkins容器拥有Docker能力
修改Jenkins任务配置,推送镜像
前面已经完成通过Jenkins实现对项目进行打包、代码扫描、部署的工作,如果项目众多,需要部署多态服务器时,还是比较耗时的。如果能集成Harbor,搭建自己的镜像仓库,这样我们在项目迁移、增加服务器时,就能更容易的实现平滑部署。接下来,介绍如何搭建Harbor镜像仓库,并应用到我们的项目中。
安装Harbor
下载Harbor
https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.9.1.tgzhttps://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.9.1.tgz
安装Harbor,上传下载好的到/usr/local目录下解压harbor文件,是否重名根据自己
tar -zxvf harbor-offline-installer-v2.9.1.tgz
进入harbor目录,修改配置文件,harbor.yml.tmpl时配置文件模板,复制一份,在此基础上进行修改即可
修改harbor.yml文件,修改主机名,端口自定义,注释掉HTTPS相关的内容,如果有自己的域名也可以配置HTTPS方式(记得更新证书、密钥,在17、18行),36行是初始密码,可以在这里修改,也可以安装成功后,在页面修改
执行预备脚本
执行安装脚本
查看运行情况,9个容器正常运行,Harbor才能正常访问
访问Harbor
修改密码
Harbor基本使用
创建项目,library是基础项目
访问级别不勾选,即为私有,上传拉取需要登录;项目配置限额是设置网速,-1为不限制;镜像代理不需要
修改docker的daemon.json文件
{ "insecure-registries": ["http://192.168.171.111:80"] }
重启docker,重启后可以查看harbor运行的容器,如果不够9个,可以先重新加载docker daemon,再重启docker
systemctl daemon-reload
systemctl restart docker
上传镜像
先登录Harbor
docker login -u admin -p Harbor12345 192.168.171.111:80
镜像打标签,命名规则:Harbor地址/项目名称/镜像名称:版本
docker tag nginx:latest 192.168.171.111:80/repository/nginx:v1.0.1
上传镜像时,名称必须对应
docker push 192.168.171.111:80/repository/nginx:v1.0.1
拉起镜像
删除掉本地的镜像
docker pull 192.168.171.111:80/repository/nginx:v1.0.1
Jenkins容器制作镜像并推送到Harbor
Jenkins容器拥有Docker能力
让jenkins容器拥有docker的能力,实现这一目的有两种方案:一、在jenkins容器中安装docker;二、让jenkins容器可以使用宿主机中的docker。由于jenkins容器中的组件不够完善,第一种方案成本比较高,这里推荐使用第二种方案。
修改宿主机中docker线程的用户权限
chown root:root docker.sock
chmod o+rw docker.sock
修改jenkins的docker-compose.yml文件
version: "3.1"
services:
jenkins:
image: jenkins/jenkins:latest
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/docker/daemon.json:/etc/docker/daemon.json
重启jenkins
docker-compose up -d
进入jenkins容器,测试是否可以使用docker
docker exec -it jenkins bash
修改Jenkins任务配置,推送镜像
修改配置,删除在目标服务器制作镜像的步骤
增加用jenkins制作镜像的步骤
查看构建日志和制作的镜像
jenkins容器中的
宿主机中的
制作好的镜像推送到Harbor仓库,如果jenkins和harbor没在同一台服务器,需要修改docker的daemon文件,配置上harbor的地址,参考上面harbor基本使用中的内容。
mv target/*.jar docker/ docker build -t jenkins-demo:$tag docker/ docker login -u admin -p Harbor12345 http://192.168.171.111:80 docker tag jenkins-demo:$tag 192.168.171.111:80/repository/jenkins-demo:$tag docker push 192.168.171.111:80/repository/jenkins-demo:$tag
写在最后
Jenkins制作镜像并推送到Harbor,就告一段落了。接下来,就是目标服务器从Harbor拉取镜像并启动项目。如果对您有一些微末的帮助,希望您能一键三连,谢谢!
好文阅读
发表评论