jenkins自动化部署go【docker+jenkins+go+gitlab+harbor+k8s】

首先说一下我的环境,首先准备一台ubuntu18.4虚拟机,安装docker, 然后用docker 安装gitlab[大家可以参考 Ubuntu Docker搭建GitLab以及常规配置使用]  和harbor【大家可以参考 Ubuntu18 安装搭建Harbor】,关于k8s的安装大家 可以参考 Ubuntu 18 Kubernetes集群的安装部署 以及Helm的安装 和 Centos 使用kubeadm安装Kubernetes 1.15.3 关于harbor 程序手动更新到k8s 参考 Windows docker k8s asp.net core.我尝试过通过docker来安装jenkins,jenkins容器里面在安装docker和harbor通信,但是后面还是遇到很多问题 不好解决, docker默认是无状态的 需要保存的数据都要挂在的虚拟机上, 比如jenkins里面下载的golang镜像,jenkins重启就丢失了, 所以后面彩用jenkins直接安装到虚拟机上。

jenkins安装

#准备工作
#存储库密钥添加到系统
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
#将Debian包存储库地址附加到服务器的sources.list
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

apt-get update
sudo apt-get install -y openjdk-8-jdk
sudo apt-get install -y jenkins

#如果你的端口8080被占用
#编辑`/etc/default/jenkins`, 修改 ----HTTP_PORT=8080----`为----HTTP_PORT=8081----` 在这里,“8081”也可被换为其他可用端口

#启动Jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins

jenkins的配置我们就省略了, 部署项目我们时 在开发测试环境可以直接在jenkins上直接运行docker实例,也可以把docker推到harbor上,至于harbor到k8s上后面在写一篇文章。

go项目

为了省事我们把必要脚本都放到项目里面,项目结构如下:

我们的Dockerfile文件如下:

FROM golang:1.15.6

RUN mkdir -p /app
RUN mkdir -p /app/conf
RUN mkdir -p /app/logs

WORKDIR /app
 
ADD main /app/main

EXPOSE 8080
 
CMD ["./main"]

buildtest.sh是在jenkins上直接运行docker实例

#!/bin/bash
#cd $WORKSPACE

export GOPROXY=https://goproxy.io
 
 #根据 go.mod 文件来处理依赖关系。
go mod tidy

# linux环境编译
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main

#删除docker
docker stop gavintest
docker rm gavintest
docker rmi  gavintest

# 构建docker镜像,项目中需要在当前目录下有dockerfile,否则构建失败
docker build -t gavintest .

mkdir logs
mkdir conf2
#挂载资源文件夹 运行docker
docker run -d --name gavintest   -p 9999:8080 -v $(pwd)/conf:/app/conf -v $(pwd)/logs:/app/logs  gavintest

在jenkins上创建一个 自由风的项目 gavintest, 调用shell脚本:

cd /var/lib/jenkins/workspace/gavintest
chmod 777 buildtest.sh
./buildtest.sh

jenkins构建 结果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值