本文先发于我的博客
没有多余的分析,直接上手。
前提
本次搭建需要准备的东西有:
- docker 环境
- docker-compose 编排工具(并不必要,只是为了简化jenkins容器启动~)
- 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 插件安装
- 在插件中心安装Go插件
- 在全局配置工具选择要安装Go版本
- 在相应的Go项目配置里,指定Go版本
- 确认$GOROOT,并配置到你的Jenkins及Jenkins容器的环境变量,同时也要配置GOPATH,会有用的哦
贴上可能会帮助说明的截图~:
如果我没有讲清楚,请看最后一部分参考的链接~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的配置了,贴个链接了事: