Jenkinx可以帮助我们通过SSH插件,将项目直接部署到指定的服务器。
下载插件
(1)点击左侧的“系统管理”菜单 ,然后点击
(2)选择“可选插件”选项卡,搜索Publish over SSH,在列表中选择Publish over SSH ,点击“直接安装”按钮,安装完成后如下图
配置要部署的服务器
(1)选择系统管理,选择系统设置
(2)配置SHH,配置好后点击应用、保存
构建项目
(1)回到首页,点击新建按钮 .如下图,输入名称,选择创建一个自由风格的项目,点击OK
(2)General管理,可以添加项目描述和GitHub项目路径,以及一些配置
(3)源码管理,选择GitHub
(4)构建触发器,配置触发规则,这里以定时和轮询为示例,配别设置为
定时构建:定时构建1次任务
轮询SCM:定时查看源码管理的代码是否更新,有更新则构建,否则不会构建
如图所示,定时构建为每间隔10分钟定时构建一次,轮询SCM为每5分钟轮询检测一次。
时间*号规则为: 分 时 日 月 周
(5)构建环境,配置控制台输出时间戳和指定Go语言版本
(6)构建,使用之前配置的SSH服务器,通过项目的Dockerfile构建镜像,Shell脚本启动容器
Exec command如下:
cd /mnt/data/jenkins
source /etc/profile
chmod 777 build.sh run.sh
./build.sh
项目内的Dockerfile如下:
FROM golang:1.11-alpine
ENV Jenkins=/go/src/github.com/Jenkins
COPY . $Jenkins/
RUN cd /go/src/github.com/Jenkins
&& go build
FROM alpine
ENV Jenkins=/go/src/github.com/Jenkins
COPY --from=0 $Jenkins/Jenkins /usr/bin
WORKDIR /data
CMD ["Jenkins"]
build脚本如下:
#!/bin/bash
docker rmi jenkins:v1.0
docker build . -t jenkins:v1.0
docker rm -f jenkins
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name jenkins -v $(pwd):/data --network=host jenkins:v1.0
docker logs -f jenkins
最后点击“保存”按钮
(7)执行构建,控制台查看输出
查看服务器的容器和镜像:
至此,就完成了使用SSH构建Go项目的所有搭建流程。