使用Docker+Jenkins实现Go语言项目的持续集成

这篇文章将介绍如何使用Docker+Jenkins实现Go语言项目的持续集成。

首先讲一下大致的实现思路:

推送代码至Git服务器 => 触发Jenkins服务器配置的Git Web Hooks => 从Git服务器中pull或clone代码 => 将代码编译成二进制可执行文件 => 构建docker镜像 => 上传docker镜像至镜像仓库 => 从Jenkins服务器进入远程应用服务器 => 从docker镜像仓库中拉取镜像 => 停止并删除该项目正在运行的docker容器 => 使用该新镜像构建并启动docker容器 => 删除其他旧版本镜像 => 完成

然后讲一下实践过程中用到的一些技术点:

  • Docker

    使用Docker的主要原因主要有,应用移植方便,并且可有效解决同一应用在不同服务器上部署带来的环境问题影响。

  • Docker Compose

    docker-compose也是由Docker提供的一个命令行工具,这里主要用于简化Jenkins服务器上对容器的操作,仅此而已,可直接使用shell脚本代替。

  • Jenkins

    Jenkins是一个自动化服务器,也可以作为简单的CI/CD服务器。

  • Git

    Git想必大家都不会陌生,这里同样使用它作为项目的代码管理仓库,并且利用它的Web Hooks,作为Jenkins任务构建的触发器。

  • 镜像仓库

    这里选择阿里云提供的容器服务作为我们的镜像仓库,可自行选择自己合适的镜像仓库。

在本文的最后,列出了实践过程中可能会出现的问题,并且提供了实践使用的Go项目代码仓库。

安装 Jenkins

启动 Jenkins 容器
  1. 拉取 Jenkins 镜像

    docker pull jenkins/jenkins:latest
    
  2. 编写 docker-compose.yml 文件

    version: "2"
    services:
    	jks:
    		image: jenkins/jenkins:latest
    		ports:
    			- 8080:8080
    			- 50000:50000
    		volumes:
    			- /data/jenkins:/var/jenkins_home
    			- /var/run/docker.sock:/var/run/docker.sock
    			- /bin/docker:/bin/docker
    		container_name: jks
    		user: root
    
  3. 创建用于挂载的 /data/jenkins 文件夹, 并修改该文件夹的拥有者为 ID=1000 的用户

    mkdir -p /data/jenkins
    chown -R 1000:1000 /data/jenkins
    
  4. 通过 docker-compose 启动 jenkins 容器

    docker-compose -f /data/compose/docker-compose.yml up -d jks
    
安装 Jenkins 插件
  1. 在浏览器输入 http://IP:8080 进入 Jenkins 管理页面

  2. 通过命令 cat /data/jenkins/secrets/initialAdminPassword 获取初始密码,对 Jenkins 进行解锁,解锁后先跳过插件安装(无需担心漏装推荐的插件,在后续安装插件过程中,会自动安装解锁后推荐的所有插件)
    在这里插入图片描述

  3. (可选)修改配置文件,并重启 Jenkins 容器,实现插件安装加速

    # 编辑jenkins配置文件
    vim /data/jenkins/updates/default.json
    
    # 执行ex命令, 替换所有插件下载URL
    :1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g
    
    # 执行ex命令, 替换连接测试URL
    :1,$s/http:\/\/www.google.com/https:\/\/www.baidu.com/g
    
    # 重启jenkins容器
    docker-compose -f /da
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值