基于 Docker 安装 Jenkins,并配置使用 Jenkins 打包 Node 前后端服务部署到远程服务器

之前讲过一篇通过 gitlab-ci 来完成前后端项目的打包和部署,但在新公司里,用的都是 jenkins 完成持续集成、持续部署的流程。因此本篇文章就是讲在服务器上通过 docker 安装 jenkins 服务,并对 jenkins 进行配置,完成可以打包 Node 前后端并部署到另一台服务器(一般我们打包和部署都是在不同的服务器,避免互相影响等)。

首先大家需要两台服务器,如果打包后的服务部署到一台服务器,也可以,不推荐而已。

一台2核4G用来部署jenkins服务,一台1核2G部署打包后的服务。

一、安装 Docker

linux服务器使用curl下载快速安装的shell脚本

curl -fsSL get.docker.com -o get-docker.sh

下载完成后,可以ls命令查看一下。已经存在的话,使用sh命令执行这个脚本

sh get-docker.sh

注意如果不是root用户,需要使用sudo su获取超级管理员权限。

安装完成后启动一下Docker Server

systemctl start docker

使用docker version命令能看到ClientServer就启动成功了。

二、使用 Docker 安装 Jenkins

1. 拉取 jenkins 镜像

推荐jenkinsci/blueocean这个镜像,官方推荐的比较稳定。

docker pull jenkinsci/blueocean
2. 启动 Jenkins 服务
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 jenkinsci/blueocean

启动后可以通过docker ps来查看服务情况。

这里还要说下,在云服务器的防火墙里打开8080端口才能访问哦。

然后通过服务器ip:8080端口就可以访问我们的 jenkins 服务啦。

image.png

3. 配置初始化 Jenkins
获取初始化密码

通过docker exec -it jenkins bash进入容器内

然后cat /var/jenkins_home/secrets/initialAdminPassword查看初始化密码

安装推荐插件

然后就进入到安装插件的页面,安装推荐插件即可

image.png

创建用户

下一步进入到创建管理员用户

image.png

再之后是选择jenkinsurl地址,然后会重启jenkins,重启后就正式进入到界面啦。

image.png

三. 配置 Jenkins 实现打包 Node 前后端服务

1. 安装插件

需要安装两个插件,在

首页 > 系统管理 > 插件管理 > 可选插件 > 搜索选中 NodeJS > 安装完成后重启服务

  • NodeJs: 代码打包时需要的环境
  • Publish Over SSH: 打包完成后通过这个插件ssh连接发送到远程服务器

Publish Over SSH在官方看到的解释是因为安全原因下架了,目前在插件管理里面搜索不到。

我们通过清华大学开源软件镜像站下载。

在里面搜索下载

  • publish-over-ssh.hpi
  • jsch.hpi
  • publish-over.hpi

因为publish-over-ssh依赖下面两个插件,所以需要一起下载。下载后在 首页 > 系统管理 > 插件管理 > 高级 > 上传插件

上传后重启下jenkins

image.png

2. 配置一下 NodeJS 插件版本

这一步是因为有时候用最新的版本安装包会失败,推荐使用最新的稳定版本,我这里是使用的16.13.1这个版本。在

首页 > 系统管理 > 全局工具工具配置 > NodeJS > 新增

image.png

填入别名,以及选择NodeJS版本。

3. 新建项目任务实现构建及部署
(1) 首页 > 新建任务 > 构建一个自由风格的软件项目

image.png

(2) git源码管理

配置这一步是让jenkins去哪个git仓库拉取代码。

image.png

  • Repository URL: git仓库的地址
  • Credentials: 连接git仓库的认证方式,一般使用Username with password或者Secret Text的方式,前者就是用户名和密码的方式,后者是需要生成token密钥,用密钥连接。
  • Branches to build: 指定拉取的分支
(3) 指定构建环境

image.png

构建环境这里选择之前我们配置好的node版本。

(4) 构建脚本

构建 > 增加构建步骤 > 执行 shell

image.png

如上图输入构建命令,先使用npm打包构建,然后进行压缩打包,方便进行远程服务的传输。

这一步配置完成后,打包建构完成后,可以进到容器内的/var/jenkins_home/workspace这个目录看打包之后的情况。

image.png

(5) 把打包后的包发送到远程服务器进行部署

首页配置下publish over sshssh连接配置。

在 首页 > 系统管理 > 系统配置 > Publish over SSH > 新增

image.png

填入这几个配置项,主要是HostnameUsername,勾选上Use password authentication, or use a different key,然后输入Password

有个Test Configuration,可以测试下是否连接成功。

返回刚才创建的项目的配置。

构建后操作选择

image.png

之后进行配置

image.png

  • Source files: 源文件,也就是刚才我们压缩好的文件,dist.tar.gz
  • Remove prefix: 移除的前缀,就是移除压缩文件前面的dist文件夹,不然移到远程服务器后也有dist文件夹
  • Exec command: 完成把文件移动到远程服务器后执行的shell命令,这里大概就是清空之前的项目文件夹下所有文件,然后解压dist.tar.gz到项目文件夹下,最后删除dist.tar.gz压缩包

到此我们就完成了所有步骤,从用 Docker 完成 Jenkins 服务,并配置 Jenkins 来打包构建我们的项目,最后 SSH 连接到远程服务器完成代码部署。其实这里可以通过 Docker 来部署我们的服务,如果需要的话,后面可以详细讲讲。到此,如果还有什么不懂的小伙伴可以评论区留言哈~!

推荐一下我的前端工程化相关的文章😄

# 基于 Docker ( Gitlab、Gitlab Runner ) 搭建一整套自动化CI、CD流程,完成从代码提交到自动打包编译到自动部署运行

# 基于 Docker + Verdaccio 搭建 Npm 私有库,实现在私有库上发布、下载npm包

# 基于 Docker 安装 Nginx 搭建静态服务器,并配置 SSL 证书开启 HTTPS 访问

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JK凯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值