国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

Docker與Golang的巧妙結(jié)合

2019-11-02 16:20:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Docker與Golang的巧妙結(jié)合

【編者的話】這是一個(gè)展示在使用Go語(yǔ)言時(shí)如何讓Docker更有用的提示與技巧的簡(jiǎn)輯。例如,如何使用不同版本的Go工具鏈來(lái)編譯Go代碼,如何交叉編譯到不同的平臺(tái)(并且測(cè)試結(jié)果!),或者如何制作真正小的容器鏡像。

下面的文章假定你已經(jīng)安裝了Docker。不必是最新版本(這篇文章不會(huì)使用Docker任何花哨的功能)。

沒有g(shù)o的Go

...意思是:“不用安裝go就能使用Go”

如果你寫Go代碼,或者你對(duì)Go語(yǔ)言有一點(diǎn)點(diǎn)興趣,你肯定要安裝了Go編譯器和Go工具鏈,所以你可能想知道:“重點(diǎn)是什么?”;但有些情況下,你想不安裝Go就來(lái)編譯Go。

機(jī)器上依舊有老版本Go 1.2(你不能或不想更新),不得不使用這個(gè)代碼庫(kù),需要一個(gè)高版本的工具鏈。 想使用Go1.5的交叉編譯功能(例如,確保能從一個(gè)Linux系統(tǒng)創(chuàng)建操作系統(tǒng)X的二進(jìn)制文件)。 想擁有多版本的Go,但不想完全弄亂系統(tǒng)。 想100%確定項(xiàng)目和它所有的依賴,下載,建立和運(yùn)行在一個(gè)純凈的系統(tǒng)上。

如果遇到上述情況,找Docker來(lái)解決!

在容器里編譯一個(gè)程序

當(dāng)你安裝了Go,你可以執(zhí)行g(shù)o get -v github.com/user/repo來(lái)下載,創(chuàng)建和安裝一個(gè)庫(kù)。(-v只是信息顯示,如果你喜歡工具鏈快速和靜默地運(yùn)行,可以將它移除!)

你也可以執(zhí)行g(shù)o get github.com/user/repo/...來(lái)下載,創(chuàng)建和安裝那個(gè)repo(包括庫(kù)和二進(jìn)制文件)里面所有的東西。

我們可以在一個(gè)容器里面這樣做!

試試這個(gè):

docker run golang go get -v github.com/golang/example/hello/...

這將拉取golang鏡像(除非你已經(jīng)有了,那它會(huì)馬上啟動(dòng)),并且創(chuàng)建一個(gè)基于它的容器。在那個(gè)容器里,go會(huì)下載一個(gè)“hello world”的例子,創(chuàng)建它,安裝它。但它會(huì)把它安裝到這個(gè)容器里……我們現(xiàn)在怎么運(yùn)行那個(gè)程序呢?

在容器里運(yùn)行程序

一個(gè)辦法是提交我們剛剛創(chuàng)建的容器,即,打包它到一個(gè)新的鏡像:

docker commit $(docker ps -lq) awesomeness

注意:docker ps

主站蜘蛛池模板: 龙川县| 丹阳市| 竹溪县| 济宁市| 屯昌县| 弥渡县| 增城市| 保定市| 邯郸县| 枝江市| 河池市| 宕昌县| 莆田市| 珲春市| 会东县| 泰州市| 修文县| 水城县| 罗田县| 中阳县| 潞西市| 娱乐| 和静县| 兴义市| 屯昌县| 乡宁县| 怀集县| 日土县| 剑阁县| 兰州市| 称多县| 林西县| 诏安县| 托克托县| 恩平市| 临泉县| 吴桥县| 新兴县| 杂多县| 中西区| 徐水县|