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

首頁 > 服務器 > Web服務器 > 正文

詳解使用Docker容器來源碼編譯etcd

2024-09-01 13:51:12
字體:
來源:轉載
供稿:網友

?背景

etcd是CoreOS公司開發的分布式鍵值對存儲庫。在Kubernetes中,我們需要使用etcd作為所有REST API對象的持久化存儲。

不幸的是,在github的release中,CoreOS將etcd的二進制可執行文件都放在了亞馬遜的S3存儲上,在國內訪問非常慢。因此,我們只能通過源碼編譯etcd。

過程

1. 下載etcd源碼。

$ git clone https://github.com/coreos/etcd.git$ cd etcd

2. 根據實際情況,選擇合適的版本。如我這里使用的是2.2.1版本。

$ git checkout -b v2.2.1

3. 編譯源碼。運行該目錄的build可執行文件。

$ ./build

但是,運行該命令出錯,提示找不到context。

$ ./buildgopath/src/github.com/coreos/etcd/cmd/vendor/github.com/coreos/etcd/lease/leasehttp/http.go:19:2: cannot find package "context" in any of:  /root/etcd/gopath/src/github.com/coreos/etcd/cmd/vendor/context (vendor tree)  /usr/local/go/src/context (from $GOROOT)  /root/etcd/gopath/src/context (from $GOPATH)  /go/src/context  /go/src/app/_gopath/src/context

網上搜索了一番,原來etcd需要在Golang1.7以上的環境才能編譯,而我使用的是Ubuntu16.04,默認的Golang版本是1.6的,沒有context包。因此,我們需要安裝Golang1.7環境。

4. 使用Docker容器編譯。因為我的Golang環境還運行著其他的包,為了不影響其他包運行。我這里直接使用Golang1.7的docker容器來編譯etcd。

$ sudo docker run -v /home/newbee/etcd/:/opt/etcd -it --rm golang:1.7.5 bash# cd /opt/etcd# ./build

在-v參數中,/home/newbee/etcd是我在Docker host中(也就是我服務器的)的etcd目錄,而/opt/etcd是我容器中的映射目錄。

注意:從Docker hub下載golang鏡像需要一定的時間。下載完成后,就進入了容器中,然后cd到/opt/etcd目錄,執行編譯。
待編譯完成后,查看etcd的bin目錄下,是否有可執行文件,如果有,就說明編譯成功。然后退出容器,服務器的etcd目錄中也有對應的可執行文件了。

總結

etcd需要在Golang1.7以上的版本編譯。

Docker容器可以很輕松的提供Golang環境,而且不會影響原來的環境,是一種新的思路。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 登封市| 西乌珠穆沁旗| 安义县| 田东县| 黄石市| 五家渠市| 观塘区| 武安市| 奉新县| 姚安县| 涡阳县| 定结县| 河东区| 寿阳县| 临泉县| 河曲县| 大名县| 中宁县| 横山县| 贵阳市| 新田县| 芜湖县| 特克斯县| 中山市| 榆林市| 兴城市| 北碚区| 民勤县| 上思县| 晋城| 双城市| 独山县| 德保县| 岳池县| 宜宾县| 肃宁县| 郴州市| 乃东县| 纳雍县| 罗定市| 南漳县|