jenkins 发布 go 镜像到 k8s

背景

Jenkins 发布 go 镜像到 k8s 记录

安装

jenkins

安装略过

go

go 的官网国内无法访问,所以从国内拉取安装包。

wget https://mirrors.ustc.edu.cn/golang/go1.18.8.linux-amd64.tar.gz
tar zxvf go1.18.8.linux-amd64.tar.gz -C /usr/local

cat <<EOF>> /etc/profile.d/go.sh
#golang env config
export GO111MODULE=on
export GOROOT=/usr/local/go 
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY=https://proxy.golang.com.cn,direct
EOF

source /etc/profile
# 软连接到 /usr/bin 目录,jenkins 才能调用到
ln -fs /usr/local/go/bin/* /usr/bin/

变量解释
GO111MODULE=on不知道
GOROOT=/usr/local/go解压目录
GOPATH=/data/gopath依赖包放置的地方,类似 maven 的 .m2 目录
PATH=$PATH:$GOROOT/bin:$GOPATH/bin加入环境变量
GOPROXY=https://proxy.golang.com.cn,direct国内依赖包镜像源,由于国内镜像源未包含所有的依赖包,而direct 的作用是当代理仓库没有回源站拉取。direct 不能省略

测试

go version

前置知识

go 如何引用本地依赖

给开发看的

方法有很多种:https://blog.csdn.net/qingchuwudi/article/details/107119273

这里只说懒人版,举个例子:

xx 现在需要用 xx-api 这个依赖包,在 jenkins 新建 xx-api 任务,此时目录为: /data/jenkins_data/xx-api

修改 xx 的 go.mod 写入路径即可直接使用 xx-api 这个依赖

module main

go 1.14

// 替换规则
replace (
    github.com/123/xx-api => /data/jenkins_data/xx-api // 这里配置
)

// 源地址
require (
    github.com/123/xx-api 
)

go 下载依赖

# 到 .go 的目录下执行
go mod tidy

go 打包命令

go build -o xx xx.go

go 打包出来的是二进制文件,./ 即可执行,所以将二进制添加到基础镜像即可。

如对镜像大小有要求推荐使用 Alpine Linux,5M 左右,但因为 Alpine Linux 太过精简,有时会缺少一些库文件。保守起见可使用 Ubuntu 或 Debian 。

基础镜像Dockerfile

FROM debian:bullseye
ENV TZ=Asia/Shanghai \
    DEBIAN_FRONTEND=noninteractive

RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone \
    && dpkg-reconfigure --frontend noninteractive tzdata \
    && rm -rf /var/lib/apt/lists/*

编译基础镜像

docker build -t xxdebian .

go镜像Dockerfile

FROM smydebian


ARG xx
ARG yy
ARG ll
ARG pp

ENV yy=${yy}
ENV xx=${xx}
ENV ll=${ll}
ENV pp=${pp}

ADD xxxx /bin/xxxx
EXPOSE 9033
CMD [ "/bin/xxxx" ]

发布到 k8s

发布同 JAVA 流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海口-熟练工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值