jenkins+Docker+springcloud微服务持续集成.docx

? ? ? ? ? jenkins+Docker+springcloud微服务持续集成 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 流程说明 本地部署 微服务是可以独立部署的,如果不借助spring-boot-maven插件,package出来的jar包是不能运行的。 借助spring-boot-maven插件package出来的jar包已经内嵌了tomcat相关的jar,可以独立运行(java -jar): 使用Dockerfile制作微服务镜像 vi Dockerfile docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 . –build-arg JAR_FILE=xxx 设置参数的值 eureka:v1:eureka是镜像名称,v1是标签tag docker build日志查看: docker run创建容器验证一下: docker logs -f 容器ID查看容器日志 Harbor 简介 安装 创建用户和项目 给tensquare项目添加成员: 上传镜像到Harbor 由于docker并不信任harbor仓库地址,贸然上传到harbor会报错: vi /etc/docker/daemon.json 信任harbor仓库地址 systemctl restart docker 重启docker 上传到私有仓库,需要账号密码:不然会报错 所以需要登录harbor: 此时就会成功push: 查看harbor仓库,就会看到刚才上传的eureka镜像: 从harbor下载镜像 docker images spring cloud微服务持续集成 代码上传到gitlab idea vcs enable git add commit remotes push TortoiseGit操作方式 init commit push remote 从gitlab拉取项目源码 在项目根目录创建Jenkinsfile脚本文件: jenkins操作:创建pipeline 将分支设计成参数接收,更灵活: 脚本中的变量设计: 双引号引用变量: 提交Jenkinsfile脚本文件: Build With Parameters 构建完毕后代码成功pull: 提交到SonarQube代码审查 报错: 注释这行: package各个子项目进行 mvn install失败 因为common工程不是一个标准的spring cloud微服务工程,找不到启动类main class而报错。 因此不能在parent工程中引入spring-boot-maven插件,而是在需要该插件的子工程中分别引入。 再次构建,就已经安装到本地仓库了: mvn clean package 使用${project_name}来获取当前工程的名称 package zuul时报错: 找不到parent父工程 需手动上传parent的pom文件到服务器的仓库相应目录下: 使用Dockerfile编译、生成镜像 dockerfile-maven-plugin插件可以读取每个工程中的Dockerfile文件自动构建镜像 tensquare_eureka_server工程 使用dockerfile-maven-plugin插件调用Dockerfile脚本文件生成镜像: 在Jenkinsfile脚本中触发dockerfile-maven-plugin插件的执行: 构建完毕后会生成eureka工程的镜像: 每个子工程都需要添加Dockerfile脚本文件和在pom.xml中添加dockerfile-maven-plugin插件: 上传镜像到harbor镜像仓库 定义镜像的标签(版本号): 定义harbor的URL地址: 定义harbor的项目名称: 上传到harbor是需要login的,账号密码写在Jenkinsfile脚本中就会暴露给所有开发人员,所以应该在jenkins的凭据中添加harbor的账号密码: 点击账号进入会看到自动生成的ID: 在Jenkinsfile脚本中定义harbor的登录凭证ID: 在流水线语法中选择: 对生成的脚本代码进行变量替换(可选): 提交push脚本。 jenkins构建日志: 登录harbor仓库查看push的镜像: 从harbor拉取镜像和发布应用 jenkins安装Publish Over SSH插件 配置101ssh免密登录到103 生成远程执行命令脚本: 关注博主即可阅读全文 ? -全文完-

文档评论(0)

1亿VIP精品文档

相关文档