打包成jar(还在手动打包上传jar包)
打包成jar(还在手动打包上传jar包)
Dubbo之Jenkins实现持续交付- Jenkins
- 基于Docker安装Jenkins
- 配置Jenkins
- 配置JDK&Maven
- 安装动态参数插件(Extend Choice Parameter)
- 使用Jenkins实现持续交付
- 配置Jenkins的GitLab SSH免密登录
- 配置Publish Over SSH
- 持续交付依赖管理项目
- Jenkins:开源软件项目基于Java开发的一种持续集成工具用于监控持续重复的工作旨在提供一个开放易用的软件平台 便于软件的持续集成
与持续集成中的GitLab Runner应该分布在不同的服务器上
- 创建工作目录: /usr/local/docker/jenkins
- 因为要在docker-compose.yml中使用volumes创建数据卷 执行命令赋予Docker数据卷权限:
chown -R 1000 /usr/local/docker/jenkins/data
- 在/usr/local/docker/jenkins创建docker-compose.yml
version: '3.1'
services:
jenkins:
restart: always
image: jenkins
container_name: jenkins
ports:
# 发布端口
- 8080:8080
# 基于JNLP的Jenkins代理通过TCP端口50000与Jenkins master进行通信
- 50000:50000
environment:
TZ: Asia/shanghai
volumes:
- ./data:/var/jenkins_home
- 执行docker-compose.yml文件启动Jenkins:
docker-compose up -d
- 解锁Jenkins: Jenkins第一次启动时需要输入初始密码解锁安装流程 使用命令查看初始密码
docker logs jenkins
- 使用自定义插件的方式安装Jenkins:
Dashboard View
Publish Over SSH
Extend Choice Parameter
也可以在Jenkins运行界面中的Manage Jekins中的Manage Plugins自定义下载安装
- 上传JDK和Maven的tar包到服务器(容器的数据卷目录)
- Manage Jekins -> Global Tool Configuration
- 安装JDK 注意: JAVA_HOME的路径是宿主机目录:(宿主机是相对宿体而言的)
/var/jenkins_home/jdk1.8.0_152
- 安装Maven 注意: MAVEN_HOME的路径是宿主机目录:(宿主机是相对宿体而言的)
/var/jenkins_home/apache-maven-3.5.3
安装动态参数插件(Extend Choice Parameter)
- 目的是方便在做项目构建时按照版本进行构建
- 支持一键回滚
- Jenkins持续交付流程与GitLab Runner持续集成流程类似 只是GitLab Runner默认已经配置好Git Jenkins需要配置多一个GitLab的SSH登录
- Jenkins持续交付流程:拉取代码打包构建上传镜像运行容器维护清理
- 交互式进入Jenkins容器
docker exec -it jenkins /bin/bash
- 生成 SSH KEY
ssh-keygen -t rsa -C "email@example.com"
- 查看公钥
cat /var/jenkins_home/.ssh/id_rsa.pub
- 复制公钥到GitLab
- 克隆项目获取到known_hosts文件
在Jenkins管理页面中系统设置增加SSH Server配置
- Name
测试环境-192.168.32.255
- Hostname
192.168.32.255
- Username
root
- Remote Directory(宿主机中可操作的目录)
/usr/local/jenkins
- 高级:Password
123456
- 高级:Port
22
- 高级:Timeout(ms)
300000
第一步是实现所有项目的父工程依赖项目的持续交付
- 项目创建标签: 在GitLab中给项目创建标签(版本号)
- 创建Maven Project: 在Jenkins中新建一个基于Maven的任务
- 配置Maven Project: 配置第一次构建初始化General: 丢弃旧的构建源码管理
- 第二次配置Maven Project开始使用General
- 保存
- Build with Parameters