❝百余次的构建,帮你趟过一个又一个坑,确保任务顺利完成!
❞
本次案例为Node服务,使用DockerFile打包镜像运行的!
新建任务
这里演示的一个自由风格的任务,自定义性比较高!
点击左侧新建任务
创建入口
创建任务
配置源码
这里用于Jenkins拉取项目代码
配置Git凭证入口
这里我选择用户名密码,ID和描述最好填清楚
配置凭证示意图
配置详细图
源码库浏览器选择githubweb,分支要注意是不是选对了,选择对应的链接以及凭证!
构建器
这里我就不配置了
Gitee webhook是当远程仓库有一些操作的时候,比如提交、合并等,配置后会触发
剩余两个都是定时任务,定时触发和Jenkins本地文件发生改变触发
示意图
构建环境
勾选的第一个是打印日志
勾选的第二个是Node,就是之前配置的
示意图
构建
# !!! 这一行一定要写,不然构建有几率直接终止的
#!/bin/bash
#移除上次打的压缩包
rm -rf dist.tar.gz
# echo是打印到哪一步了的提示
echo "移除上次打的压缩包"
#把dist目录下的文件全部打成压缩包
echo "开始打包"
# 把所需文件打包成gzip文件,tar可看之前文件
tar -zcvf dist.tar.gz ./bin ./config ./db ./ public ./routes ./service ./views app.js Dockerfile package.json
echo "结束打包"
# 列举当前目录的文件
ls
示意图
构建后
当我们构建完成之后,要把包发送到服务器进行部署
选择Send build artifacts over SSH,当我们安装了插件之后就会有该选择
SSH serve Name 就是之前配置的
示例
示例
注意:服务器接受的目录是跟全局配置有关,我全局配置的是/opt
# 进入服务器目录
cd /opt/app/node/other-source-api
echo "进入压缩包所在目录"
rm -rf app
echo "移除存放前端文件的目录"
mkdir app
echo "创建存放前端文件的目录"
tar -zxvf dist.tar.gz -C app
echo "解压tar.gz文件,并放到上面创建的目录下"
rm -rf ./dist.tar.gz
echo "移除dist.tar.gz文件"
cd app
echo "进入app文件夹"
echo "------------- 制作other-source-api-test镜像开始 --------------"
docker build -t other-source-api-test .
echo "------------- 制作other-source-api-test镜像结束 --------------"
# 这里先把正在运行的容器终止并删除在重新启动
echo "------------- 终止 other-source-api-test 容器 开始 --------------"
docker stop other-source-api-test
echo "------------- 终止 other-source-api-test 容器 结束 --------------"
echo "------------- 删除 other-source-api-test 容器 开始 --------------"
docker rm other-source-api-test
echo "------------- 删除 other-source-api-test 容器 结束 --------------"
echo "运行镜像"
docker run -d -p 8081:8080 --restart=always -v /usr/lib/jvm:/usr/lib/jvm -v /usr/share/javazi-1.8:/usr/share/javazi-1.8 --name other-source-api-test other-source-api-test
注意:Jenkins打包镜像的时候会产生[NONE]的镜像,我们是要删除掉的,这里没有进行删除
运行
运行按钮
构建成功
我这里重新创建了一个任务,可以看到,一次就成功了!
附上部分日志
日志一
关注公众号了解更多