<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
以前go工程都是在我mac上打包成映象然後再推到我的docker hub上去,每次更新都要經過打包->推播到dockert倉庫->目前服務重新拉取容器;最近專案程式碼量很大,頻繁更新,終於忍不住了,決定把jks得用起來,這樣可以解放下雙手。注:我們jks直接安裝在內網硬體伺服器上(centos7.9)。
#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/
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
列印環境變數:printenv |grep GO
GO_PATH=/data/go
GOPROXY=https://mirrors.aliyun.com/goproxy/
GO_HOME=/usr/local/go
GO_ROOT=/usr/local/go
自己建個go工程,寫個hello world 看是否能夠go run main.go
設定步驟:
新建Item-> Freestyle project
執行我的shell指令碼;指令碼的內容有:
我的環境變數都沒有在jks上設定,因此我需要用/usr/local/go/bin/go來執行命令(GO_ROOT 是 /usr/local/go)。
此外,我build go程式碼的時候,在前面加了“CGO_ENABLED=0”。這個是用來解決容器找不到我的可執行程式的問題(會報錯:“/bin/sh: xxxnot found”)
ansible 不會用的自己百度查下,這個是用來執行遠端伺服器的命令,運維同學肯定很熟悉。
我需要遠端伺服器,刪除當前容器,並且重新拉去映象並執行。
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"
jks非常靈活,我這裡使用的jks並沒有安裝什麼外掛(docker 和go外掛),只是用到jks的兩個功能:
(1)編譯go程式碼;
(2)打包成映象並且推播到倉庫;
(3)通過ansible在開發伺服器上執行刪除容器啟動新容器指令碼;
其它:
如果你只想生成可執行程式並且在遠端允許(不想要docker),那麼你只要在指令碼裡面寫入:
(1)編譯程式碼;
(2)通過ansbile推播可執行程式到你目標伺服器
(3)ansible 執行遠端的指令碼(你可以在裡面寫重啟的相關命令)。
我設定jks的時候遇到兩個問題:
1、在jks拉取程式碼後,打包的可執行程式在centos 下能夠執行,但是打包到映象後,執行報錯(“/bin/sh: xxxnot found”),通過百度,在編譯時語句前面加了CGO_ENABLED=0。
2、打包成映象的shell命令報錯
jks拉取的程式碼存放在:/var/lib/jenkins/workspace 目錄下。如果碰到問題了,我們可以自己在這個目錄下手動偵錯。舉例:
我構建了一個jks 工程“gw_micro_service”。你可以在這個目錄下手動執行jks上的那個shell命令,遇到啥問題可先在這個目錄下偵錯好。
jks是個很好的工具,使用方法也很多,我只用了它簡單的功能;其實這些我也可以寫個指令碼,在我mac上一鍵升級遠端程式。但是這樣不方便協同辦公。
到此這篇關於jenkins設定golang 程式碼工程自動釋出的文章就介紹到這了,更多相關jenkins設定golang內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45