Jenkins
提升镜像拉取速度(可选)
检查是否有加速配置,运行命令:
docker info若返回类似以下文字则说明有镜像加速配置,但镜像源可能是未生效:
shRegistry Mirrors: https://hub-mirror.c.163.com/ https://mirror.baidubce.com/执行命令,使源配置生效:
shsystemctl daemon-reload systemctl restart docker若没有返回上述文字,则需要配置镜像源:
准备镜像配置
json{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }执行命令
shmkdir /etc/docker vi /etc/docker/daemon.json # 将镜像 json 粘贴到 daemon.json 文件中,保存并退出后执行下面的命令 systemctl daemon-reload systemctl restart docker镜像加速配置完成,加速生效。
使用 docker 安装 Jenkins
安装与启动
官方教程:使用 npm 构建 Node.js 和 React 应用
docker run \
-d \
--name jenkins \
-u root \
-p 8080:8080 \
-v /usr/local/jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts运行后提示:Unable to find image 'jenkins/jenkins:lts' locally,等待几秒钟后会自动拉取 jenkins/jenkins:lts
等待拉取与安装完成…
初次进入 Jenkins
首次打开 Jenkins 网页时需要输入初始密码
获取初始密码
等待docker run运行完成,再运行命令:
docker logs jenkins输出以下文本,复制 ${初始密码}
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
${初始密码}
首次打开 Jenkins
浏览器打开
http:${服务器 IP}:8080
选择
安装推荐的插件等待插件安装完成,有些插件可能会安装失败,多次重试安装后仍失败则直接跳过
创建第一个管理员用户
可以直接使用默认的
admin账号登录(点击使用admin账户继续),也可以新建管理员用户;为了防止他人猜到账号,这里选择新建管理员用户:填写完表单后点击右下角
保存并完成
配置实例
不需要通过域名访问时不需要更改 Jenkins URL,点击
保存并完成即可
重启 Jenkins
即使已经安装了汉化插件有些文本仍是英文,重启后就能变成中文,手动运行命令:
shdocker restart jenkins
Jenkins 的搭建已经完成,后文是通过 Jenkins 实现 CD:
使用 Jenkins 进行 CD
CD 的主要过程如下:

安装 && 配置插件
依次打开插件安装界面:Dashboard - 系统管理 - 插件管理 - Available plugins
在搜索输入框内输入插件完整的名称、选中后点击安装按钮

pull:拉取代码安装插件:
Git(通常作为默认插件在安装 Jenkins 时已自动安装)插件安装完成过后依次打开
Dashboard - 系统管理 - 系统配置,找到Git plugin,填写本地 git 账户的昵称与邮箱、点击保存
配置 gitlab 凭据
依次打开
Dashboard - 系统管理 - 凭据管理 - 添加凭据
选择
Username with password,填入登录 gitlab 时使用的账号密码以及其他附属信息,最后点击Create
build:执行构建命令,需要nodejs环境安装插件:
NodeJS插件安装完成过后依次打开
Dashboard - 系统管理 - 全局工具配置,找到NodeJS 安装,点击新增 NodeJS选择 node 版本,并点击
保存
更换
npm Taobao源依次点开
Dashboard - 系统管理 - Managed files - Add a new Config选择
Npm config file,最后点击Next
在新表单中填入名称等必要项后点击
新增
填入淘宝源:
https://registry.npm.taobao.org后点击Submit
提示
也可以不配置更换 npm 源,构建时指定 npm 源也可以:
shnpm i --registry https://registry.npm.taobao.org
deploy:部署,需要连接别的服务器传输文件并执行部署脚本安装插件:
Publish over SSH插件安装完成过后依次打开
Dashboard - 系统管理 - 系统配置,找到Publish over SSH,点击新增填入服务器 IP、账号密码、根路径以及其他必要信息后点击保存

提示
构建时调用插件传输文件的路径均是相对于该处填写的
Remote Directory,因此填写成根路径/比较方便
创建 node && npm 构建任务
点击左侧“新建任务”,再分别输入项目名、选择项目类型,最后点击确定

配置源码管理
选择
Git,填入代码仓库地址,选择登录 gitlab 的凭据,填写分支后点击确定
提示
该步配置完后最好先执行构建一次,看看能否正常拉取代码,能正常拉取再继续后面的配置
配置构建环境
勾选
Provide Node & npm bin/ folder to PATH,选择要使用的 node 版本、选择 npmrc file,点击保存
配置构建步骤
不同于 CD 主要过程,详细的 CD 过程应当如下:

配置步骤:install && build
在构建任务配置中找到
Build Steps,下拉选择执行 shell
在
命令输入框中输入构建命令,以前端构建为例,先安装再构建:sh# 对应步骤:install,安装 node_modules 时会自动使用前面配置的 taobao 源 npm i # 对应步骤:build npm run build # 压缩构建产物,便于构建后的文件传输;非必需步骤 tar -czf dist.tar.gz dist提示
构建后操作也可以传输整个目录,但同体积下传输单个压缩包文件比传输多个极小的文件效率高
配置步骤:send && backup && deploy
在
Build Steps中下拉选择Send files or execute commands over SSH
sh# 切换到部署路径下 cd /usr/local/nginx/html # 先备份再部署 # 备份前应当先删除上次的备份,也可以备份上次的备份 rm -rf dist-bak # 重命名文件夹即是备份 mv dist dist-bak # 解压后得到的文件夹即是要部署的内容 tar -xzf dist.tar.gz配置步骤:clean
用于构建的目录和用于部署的目录都会产生无用的内容,因此这两个地方都需要进行清除操作
清除服务器部署目录下无用的内容

尾行增加脚本:
sh# 部署后删除传输过来的内容 rm -f dist.tar.gz清除工作空间构建后无用的内容
在构建任务配置中找到
Build Steps,下拉选择执行 shell使用以下命令:
shrm -f dist.tar.gz
记得点击“保存”
完整的配置如图:

