最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jenkins配置golang?代碼工程自動發(fā)布的實現(xiàn)方法

 更新時間:2022年07月26日 14:32:45   作者:stefan1240  
這篇文章主要介紹了jenkins配置golang?代碼工程自動發(fā)布,jks是個很好的工具,使用方法也很多,我只用了它簡單的功能,對jenkins配置golang相關(guān)知識感興趣的朋友一起看看吧

前沿

以前go工程都是在我mac上打包成鏡像然后再推到我的docker hub上去,每次更新都要經(jīng)過打包->推送到dockert倉庫->目前服務(wù)重新拉取容器;最近項目代碼量很大,頻繁更新,終于忍不住了,決定把jks得用起來,這樣可以解放下雙手。注:我們jks直接安裝在內(nèi)網(wǎng)硬件服務(wù)器上(centos7.9)。

一、在jenkins宿主機上配置go環(huán)境;

1、安裝go;

#1.下載golang
wget https://golang.google.cn/dl/go1.16.3.linux-amd64.tar.gz
#2.安裝
tar -xf go1.16.3.linux-amd64.tar.gz -C /usr/local/

2、配置環(huán)境變量

1、vi /etc/profile

GO111MODULE=on
GO_PATH=/data/go
GOPROXY=https://mirrors.aliyun.com/goproxy/
GO_HOME=/usr/local/go
GO_ROOT=/usr/local/go

讓配置文件立即生效:soruce /etc/profile

打印環(huán)境變量:printenv |grep GO
GO_PATH=/data/go
GOPROXY=https://mirrors.aliyun.com/goproxy/
GO_HOME=/usr/local/go
GO_ROOT=/usr/local/go

3、驗證環(huán)境是否可用

自己建個go工程,寫個hello world 看是否能夠go run main.go

二、jenkis上配置項目

配置步驟:

1、jks上新建項目

新建Item-> Freestyle project

2、“源碼管理”菜單添加git信息

3、“構(gòu)建”-》增加構(gòu)建步驟-》Execute shell

執(zhí)行我的shell腳本;腳本的內(nèi)容有:

(1)編譯go代碼;

我的環(huán)境變量都沒有在jks上配置,因此我需要用/usr/local/go/bin/go來執(zhí)行命令(GO_ROOT 是 /usr/local/go)。

此外,我build go代碼的時候,在前面加了“CGO_ENABLED=0”。這個是用來解決容器找不到我的可執(zhí)行程序的問題(會報錯:“/bin/sh: xxxnot found”)

(2)打包成鏡像并且推送到倉庫;

(3)通過ansible在開發(fā)服務(wù)器上執(zhí)行刪除容器啟動新容器腳本;

ansible 不會用的自己百度查下,這個是用來執(zhí)行遠程服務(wù)器的命令,運維同學(xué)肯定很熟悉。

我需要遠程服務(wù)器,刪除當(dāng)前容器,并且重新拉去鏡像并運行。

git checkout $GIT_TAG
echo "-------------build go project-------------------------"
export GOPROXY=https://mirrors.aliyun.com/goproxy/
/usr/local/go/bin/go mod tidy
CGO_ENABLED=0 /usr/local/go/bin/go build -o gw_micro_service main.go
#push docker image to docker hub
echo "-------------push docker image to docker hub-------------------------"
docker build -t gw_micro_service .
docker tag gw_micro_service harbor.zaitugongda.com:5000/stefan/gw_micro_service:latest
docker push harbor.zaitugongda.com:5000/stefan/gw_micro_service:latest
if [ $? -eq 0 ]
then
    echo "push ok"
else
    echo "push faild"
fi
echo "-------------remote servcie restart docker-------------------------"
ip='47.106.89.198'
ansible $ip -m shell -a "bash /data/gw_micro_service/rebuildDocker.sh"

4、如何使用jks的功能

jks非常靈活,我這里使用的jks并沒有安裝什么插件(docker 和go插件),只是用到j(luò)ks的兩個功能:

1)、從git上拉代碼;

2)、執(zhí)行我的shell腳本;腳本的內(nèi)容有:

(1)編譯go代碼;

(2)打包成鏡像并且推送到倉庫;

(3)通過ansible在開發(fā)服務(wù)器上執(zhí)行刪除容器啟動新容器腳本;

其它:

如果你只想生成可執(zhí)行程序并且在遠端允許(不想要docker),那么你只要在腳本里面寫入:

(1)編譯代碼;

(2)通過ansbile推送可執(zhí)行程序到你目標(biāo)服務(wù)器

(3)ansible 執(zhí)行遠端的腳本(你可以在里面寫重啟的相關(guān)命令)。

5、調(diào)試方法

我配置jks的時候遇到兩個問題:

1、在jks拉取代碼后,打包的可執(zhí)行程序在centos 下能夠運行,但是打包到鏡像后,執(zhí)行報錯(“/bin/sh: xxxnot found”),通過百度,在編譯時語句前面加了CGO_ENABLED=0。

2、打包成鏡像的shell命令報錯

jks拉取的代碼存放在:/var/lib/jenkins/workspace 目錄下。如果碰到問題了,我們可以自己在這個目錄下手動調(diào)試。舉例:

我構(gòu)建了一個jks 工程“gw_micro_service”。你可以在這個目錄下手動執(zhí)行jks上的那個shell命令,遇到啥問題可先在這個目錄下調(diào)試好。

總結(jié):

jks是個很好的工具,使用方法也很多,我只用了它簡單的功能;其實這些我也可以寫個腳本,在我mac上一鍵升級遠端程序。但是這樣不方便協(xié)同辦公。

到此這篇關(guān)于jenkins配置golang 代碼工程自動發(fā)布的文章就介紹到這了,更多相關(guān)jenkins配置golang內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用pprof分析golang內(nèi)存泄露問題及解決

    使用pprof分析golang內(nèi)存泄露問題及解決

    這篇文章主要介紹了使用pprof分析golang內(nèi)存泄露問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 基于Go和Gin的環(huán)境配置方法

    基于Go和Gin的環(huán)境配置方法

    今天小編就為大家分享一篇基于Go和Gin的環(huán)境配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Golang學(xué)習(xí)之無類型常量詳解

    Golang學(xué)習(xí)之無類型常量詳解

    對于無類型常量,可能大家是第一次聽說,但我們每天都在用,每天都有無數(shù)潛在的坑被埋下。本文就來和大家聊聊它的相關(guān)注意事項吧,希望對大家有所幫助
    2023-03-03
  • Go語言中init函數(shù)與匿名函數(shù)使用淺析

    Go語言中init函數(shù)與匿名函數(shù)使用淺析

    這篇文章主要介紹了Go語言中init函數(shù)與匿名函數(shù)使用淺析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • go語言實現(xiàn)簡單的并發(fā)網(wǎng)頁爬蟲示例

    go語言實現(xiàn)簡單的并發(fā)網(wǎng)頁爬蟲示例

    在這個章節(jié)中,我們將會結(jié)合之前的知識點,實現(xiàn)一個簡易的并發(fā)網(wǎng)頁爬蟲,我們的爬蟲會先爬取一個起始頁面,提取出所有的鏈接,然后并發(fā)地爬取這些鏈接,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-08-08
  • Go語言怎么使用變長參數(shù)函數(shù)

    Go語言怎么使用變長參數(shù)函數(shù)

    本文主要介紹了Go語言怎么使用變長參數(shù)函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 使用Go重試機制代碼更可靠

    使用Go重試機制代碼更可靠

    這篇文章主要為大家介紹了使用Go重試機制的使用,使你的代碼更加可靠,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 一文帶你熟悉Go語言中的for循環(huán)

    一文帶你熟悉Go語言中的for循環(huán)

    這篇文章主要和大家分享一下Go語言中for循環(huán)的定義與使用,文中的示例代碼講解詳細,對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2022-11-11
  • 解決Go語言time包數(shù)字與時間相乘的問題

    解決Go語言time包數(shù)字與時間相乘的問題

    這篇文章主要介紹了Go語言time包數(shù)字與時間相乘的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • ubuntu下搭建Go語言(golang)環(huán)境

    ubuntu下搭建Go語言(golang)環(huán)境

    這篇文章主要介紹了ubuntu下搭建Go語言(golang)環(huán)境,需要的朋友可以參考下
    2015-01-01

最新評論

怀远县| 辽阳市| 马关县| 蕉岭县| 嵊州市| 贵州省| 阳原县| 泗阳县| 东阿县| 东莞市| 涪陵区| 山东省| 嘉祥县| 蚌埠市| 靖远县| 新安县| 海盐县| 大石桥市| 乌拉特后旗| 精河县| 隆德县| 远安县| 长葛市| 临夏市| 永新县| 庆城县| 天门市| 连南| 饶平县| 西盟| 平塘县| 黔江区| 女性| 宁陕县| 郴州市| 乳源| 屯昌县| 江都市| 合水县| 赞皇县| 罗甸县|