本文先发于我的博客

没有多余的分析,直接上手。

前提

本次搭建需要准备的东西有:

  1. docker 环境
  2. docker-compose 编排工具(并不必要,只是为了简化jenkins容器启动~)
  3. jenkins/jenkins:lts 镜像

#docker-compose配置

docker-compose 是docker编排工具之一,简单的来说,为了一次启动多个docker容器。但是在这里,只是为了简化我启动容器需要输入的命令而已~。毕竟我只启动jenkins一个服务而已。

当然这里只是最基本的配置,如果需要配置执行器的数量,或者是JVM的相关参数,可以参阅官方的文档:jenkinsci/docker。

到了这里,如果一切准备就绪那么,只需要一句简单命令便可以运行起来jenkins了,简直不要太简单:

docker,及docker-compose学习,推荐 前言 · Docker -- 从入门到实践
Note:上述命令在docker-compose.yml文件同一目录下执行

#Jenkins初始化

这个不是重点,所以就按照引导点就行了。

#Jenkins上Golang编译及项目部署的插件

其一,Go 插件安装

  1. 插件中心安装Go插件
  2. 全局配置工具选择要安装Go版本
  3. 在相应的Go项目配置里,指定Go版本
  4. 确认$GOROOT,并配置到你的Jenkins及Jenkins容器的环境变量,同时也要配置GOPATH,会有用的哦

贴上可能会帮助说明的截图~:

安装Go
配置Git拉取代码分支和存放路径,这里是基于已经设定了GOPATH
一个直白的构建命令,Makefile在后面贴上

如果我没有讲清楚,请看最后一部分参考的链接~Setup Jenkins for Go Project

Jenkins ver. 2.107.2

其二,PubLishOverSSH 插件安装

这个网上也很多教程,这里就简单描述下步骤了:

Publish Over SSHPublish Over SSH
docker exec -ti $CONTAINER_ID bash-u 0

# 编写Makefile和部署

想要容器内支持make命令,需要在容器内安装make

整个过程,看makefile中应该比较直观了吧?非要解释的话:

容器来Golang编译,tar打包相关文件,通过scp来分发打包文件,ssh远程执行命令

#多嘴

如果项目有依赖管理的话,除去手动去容器中手动安装和更新的方式以外,可以在makefile中加上这么一步(deps),譬如使用了gvt来管理:

声明,上述部分还没有实际测验过,不能保证完全正确,但是不影响理(shui)解(wen)嘛【滑稽

#trigger的配置

这一部分就只属于jenkins的配置了,贴个链接了事:

#参考