Jenkins 微服务持续集成十一(Spring Cloud 微服务二)

7 篇文章 2 订阅
3 篇文章 0 订阅


一、Jenkins+Docker+SpringCloud 持续集成流程说明

在这里插入图片描述
大致流程说明:

  • 开发人员每天把代码提交到 Gitlab 代码仓库。
  • Jenkins 从 Gitlab 中拉取项目源码,编译并打成 jar 包,然后构建成 Docker 镜像,将镜像上传到 Harbor 私有仓库。
  • Jenkins 发送 SSH 远程命令,让生产部署服务器到 Harbor 私有仓库拉取镜像到本地,然后创建容器。
  • 最后,用户可以访问到容器。
服务器名称IP 地址安装的软件
代码托管服务器192.168.10.20Gitlab
持续集成服务器192.168.10.30Jenkins,Maven,Git,JDK,Sonarqube,Docker20.10.12-ce
Docker 仓库服务器192.168.10.40JDK,Tomcat,Docker20.10.12-ceHarbor1.9.2
生产部署服务器192.168.10.50Docker20.10.12-ce

二、安装 Docker

192.168.10.30/40/50 需要安装 docker。

卸载老版本 docker

yum list installed | grep docker	# 列出当前所有 docker 的包
yum -y remove docker*				# 卸载 docker 包
rm -rf /var/lib/docker				# 删除 docker 的所有镜像和容器

安装 docker

#!/bin/bash

#环境配置
systemctl stop firewalld && systemctl disable firewalld
setenforce 0

#安装依赖包
yum -y install yum-utils device-mapper-persistemt-data lvm2

#设置阿里云镜像源
cd /etc/yum.repos.d/
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装 docker-ce 社区版(企业版叫 docker-ee,收费)
yum -y install docker-ce

#配置阿里云镜像加速(尽量使用自己的)
#地址 https://help.aliyun.com/document_detail/60750.html
#后面还需配置指向 harbor 仓库
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://4iv7219l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload

#网络优化
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward=1
EOF

sysctl -p
systemctl restart network
systemctl enable docker && systemctl restart docker

三、安装 Harbor 仓库

在 192.168.10.40 服务器上

1. 部署 Docker-Compose 服务

#wget http://101.34.22.188/docker-compose/docker-compose -P /usr/local/bin
[root@c7-3 ~]#curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@c7-3 ~]#chmod +x /usr/local/bin/docker-compose 
[root@c7-3 ~]#docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3

2. 部署 Harbor

2.1 下载或上传 Harbor 安装程序

#wget http://101.34.22.188/harbor/harbor-offline-installer-v1.9.2.tgz -P /opt
#wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.9.2.tgz

[root@c7-3 ~]#cd /opt
[root@c7-3 /opt]#rz -E
#传入 harbor 安装包 harbor-offline-installer-v1.9.2.tgz
[root@c7-3 /opt]#tar zxvf harbor-offline-installer-v1.9.2.tgz -C /usr/local/

2.2 修改 harbor 安装的配置文件

[root@c7-3 /opt]#vim /usr/local/harbor/harbor.yml
#5行,修改设置为 Harbor 服务器的 IP 地址或者域名
hostname : 192.168.10.40
#10行,修改 port 为 85
  port: 85
#27行,指定管理员的初始密码,默认的用户名/密码是 admin/Harbor12345
harbor_admin_password : Harbor12345

2.3 安装 Harbor

[root@c7-3harbor]#/usr/local/harbor/prepare
......
[root@c7-3harbor]#/usr/local/harbor/install.sh
......
[Step 3]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-db     ... done
Creating registry      ... done
Creating harbor-portal ... done
Creating redis         ... done
Creating registryctl   ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://192.168.10.40. 
For more details, please visit https://github.com/goharbor/harbor .

2.4 启动 Harbor

docker-compose up -d	#启动
docker-compose stop		#停止
docker-compose restart	#重新启动
#--------------------------------------#
[root@c7-3harbor]#docker-compose up -d
harbor-log is up-to-date
harbor-db is up-to-date
registry is up-to-date
registryctl is up-to-date
harbor-portal is up-to-date
redis is up-to-date
harbor-core is up-to-date
harbor-jobservice is up-to-date
nginx is up-to-date

2.5 访问 Harbor

http://192.168.10.40:85
默认账户密码:admin/Harbor12345
在这里插入图片描述
Harbor 的项目分为公开和私有的:

  • 公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个 library 公开项目。
  • 私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。

四、在 Harbor 创建用户和项目

1. 创建项目

在这里插入图片描述
在这里插入图片描述

2. 创建用户

在这里插入图片描述
在这里插入图片描述

3. 给私有项目分配用户

进入 tensquare 项目 -> 成员

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

角色权限说明
访客对于指定项目拥有只读权限
开发人员对于指定项目拥有读写权限
维护人员对于指定项目拥有读写权限,创建 Webhooks
项目管理员除了读写权限,同时拥有用户管理/镜像扫描等管理权限

五、使用 Dockerfile 制作微服务镜像

制作 Eureka 注册中心的镜像

上传 jar 包到 Jenkins 服务器
在这里插入图片描述

编写 Dockerfile

FROM openjdk:8-jdk-alpine 
ARG JAR_FILE
COPY ${JAR_FILE} app.jar 
EXPOSE 10086
ENTRYPOINT ["java","-jar","/app.jar"]

构建镜像

docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .

查看镜像是否创建成功

docker images

创建容器

docker run -itd --name=eureka -p 10086:10086 eureka:v1
#启动需要时间

访问容器
http://192.168.10.30:10086

六、上传镜像到 Harbor 仓库

在 jenkins 服务器的 docker 服务中指定 harbor 地址(信任列表)

[root@c7-2 ~]#vim /etc/docker/daemon.json 

{
  "registry-mirrors": ["https://4iv7219l.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.10.40:85"]
}

[root@c7-2 ~]#systemctl restart docker

给镜像打上标签

docker tag eureka:v1 192.168.10.40:85/tensquare/eureka:v1

登录 Harbor

docker login -u admin -p Harbor12345 192.168.10.40:85

推送镜像

docker push 192.168.10.40:85/tensquare/eureka:v1

七、从 Harbor 下载镜像

在 192.168.10.50 服务器上下载镜像
修改 daemon.json

[root@c7-4 ~]#vim /etc/docker/daemon.json 

{
  "registry-mirrors": ["https://4iv7219l.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.10.40:85"]
}

[root@c7-4 ~]#systemctl restart docker

登录 harbor

docker login -u admin -p Harbor12345 192.168.10.40:85

下载镜像
在这里插入图片描述

[root@c7-4 ~]#docker pull 192.168.10.40:85/tensquare/eureka:v1
......
[root@c7-4 ~]#docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
192.168.10.40:85/tensquare/eureka   v1        433162998bef   27 minutes ago   150MB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值