1.安装Jenkins
- 拉取docker镜像
启动jenkins容器
创建jenkins挂载目录
修改挂载目录权限
- 访问主机IP+18080端口,根据提示获得管理员登录密码
- 在宿主机的挂载目录中查看密码
- 安装插件
- 添加管理员信息
- 安装后重启使汉化插件生效
2.公钥私钥配置
2.1公钥配置
这一步的目的是为了实现Jenkins容器和github实现SSH免密连接,为后续的item
的git源码管理做准备。
需要注意的是,jenkins容器内部默认已经存在Git环境:
- 在jenkins容器内部使docker用以下命令在
/root/.ssh目录下生成
公钥和私钥文件:
- 复制公钥文件内容
在github中点击setting,添加SSH Key
SSH添加成功:
- 测试ssh连接:
- 如果此时报错,报错为ssh连接超时(22端口),,那可以使用443端口:
- 使用以下命令在容器内部安装vim命令:
- 在/root/.ssh目录下创建一个config文件
- 写入以下内容:
- 再次测试ssh免密连接:
显示成功验证:
- 尝试使用ssh免密连接的方式克隆项目:
2.2私钥配置
私钥的作用是作为jenkins拉取远程仓库的凭证
- 进入到jenkins点击凭据管理:
添加新的全局凭据
将Jenkins容器中/root/.ssh
目录下的私钥文件id_rsa
内部复制下来,填入到下属私钥的位置:
3.Jenkins配置
3.1配置Publish over SSH
Publish over SSH
插件的作用是将Jenkins打包好的文件发送大宿主机的指定目录下
- 创建项目目录
- 安装
Publish over SSH
插件
- 配置
Publish over SSH
插件
进入到系统配置
找到Publish over SSH
下的SSH Server
点击新增,并填写如下配置信息:
- 点击下方的测试按钮进行测试,出现
Success
表示成功连接到服务器
3.2配置Node.js
- 安装node.js插件
- 在全局工具配置中找到NodeJS安装并配置自动安装
- 重启jenkins容器
- 先创建一个测试项目(目的是为了安装上node.js插件)
- 配置源码管理
- 配置构建环境
- Build Steps选择执行shell,查看node版本
- 点击保存,并点击立即构建
- 查看控制台信息,显示安装成功
- 进入到容器内部,打开环境配置文件
- 在profile文件中添加以下内容
- 刷新profile文件,并测试
3.3配置Maven
- 安装Maven插件
- 选择全局工具配置
- 选择版本自动安装
3.4配置GitHub服务器
这一步的目的是为了连接github,并配置webhook-token
- 在自己的github账户中找到 Settings -> Developer Settings -> Token(classic)
- 生成webhook-token
- 将token复制下来
- 在jenkins中点击凭据管理,添加全局凭据
- 在系统配置里找到Github服务器
4.自动化部署Vue项目
- 在本机准备好nginx镜像
- 在Vue项目的根目录下创建
Dockerfile
文件和nginx的配置文件default.conf
,文件内容如下
Dockerfile:
default.conf
- 创建一个自由风格的项目
- 配置源码管理
构建触发器
选择Github的hook(就是刚刚配置的webhook)
- 构建环境
- Build Steps选择执行shell
第一种情况:将文件(文件夹)发送到和jenkins容器在同一台的服务器
第二种情况:将文件(文件夹)发送到和jenkins容器在不同一台的服务器
经过实现,创建多个Transet
会出现SSH
连接错误。
最终的解决方案是在dist打包之前,将Dockerfile
和default.conf
也打包进去,然后在构建后操作中再移动出来。
- 构建后操作
第一种情况:将文件(文件夹)发送到和jenkins容器在同一台的服务器
第二种情况:将文件(文件夹)发送到和jenkins容器在不同一台的服务器
经过实现,创建多个Transet
会出现SSH
连接错误。
最终的解决方案是在dist打包之前,将Dockerfile
和default.conf
也打包进去,然后在构建后操作中再移动出来。
- 配置完成后点击保存
- 在项目中push代码到远程仓库,webhook会监听推送事件,Jenkins从github中拉取代码
- 查看控制台信息,构建成功
- 访问项目地址