学习目的
使用jenkins工具完成持续集成和持续部署的工作。在项目交付的过程中,需求方需要一周查看一次项目进度;于是,需要我们将项目多次发布的服务器上,这样产生了大量重复打包提交至服务器的手工工作。希望使用jenkins的功能特性以减少重复性劳动。
环境
使用centos环境,搭配jenkins的docker官方镜像,代码托管用的CODING DevOps - 一站式软件研发管理平台-腾讯云平台。
因为后端是golang项目,需要在本机配置golang环境,使用了git和make工具
composefile
有些需要从原始镜像拷贝出来再复制进去
version: '3.1'
services:
jenkins:
image: jenkins/jenkins:jdk11
container_name: jenkins
ports:
- 9090:8080
environment:
- GO111MODULE=on
- GOROOT=/usr/local/go
- GOPATH=/home/gopath
- GOPROXY=https://goproxy.cn,direct
- NODE_HOME=/var/jenkins_home/node
- PATH=/var/jenkins_home/node/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/gopath/bin:/root/bin
volumes:
- jenkins_data:/var/jenkins_home
- /usr/local/go:/usr/local/go
- /usr/bin/make:/usr/bin/make
- /root/gopath:/home/gopath
- /usr/local/git:/usr/local/git
- /root/.ssh:/var/jenkins_home/.ssh
- /usr/local/nodejs/node16:/var/jenkins_home/node
privileged: true
volumes:
jenkins_data:
driver: local
公钥部署
- 需要在本机配置.ssh密码,并复制到docker镜像中
- 将公钥配置到coding的仓库代码中
- Jenkins中要配置.ssh的密钥
建立项目
使用pipeline的语法