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項目的所有搭建流程。