EOS開發(fā)-Docker構(gòu)建EOS環(huán)境

由于EOS的版本在不斷的更新迭代,本地編譯最新版本的方式更新比較繁瑣,而且容易出問題。

因此,我們推薦使用Docker容器的方式配置EOS本地測試環(huán)境,這樣方便維護(hù)升級,而且簡單。 此外,EOS的Docker Image會每天定時更新并被推送到dockerhub,可以直接去拉取官方的最新版本Image使用。

下面的步驟會以Mac系統(tǒng)為例,由于我們使用Docker環(huán)境,理論上不依賴具體的操作系統(tǒng)環(huán)境,只要使用的系統(tǒng)能夠安裝Docker即可。

系統(tǒng)配置要求

硬盤存儲空間 > 8GB

內(nèi)存 > 4GB

安裝docker和docker-compose

可以到Docker官方網(wǎng)站下載Docker,推薦以下版本:?下載安裝后,啟動Docker服務(wù),不同的系統(tǒng)啟動Docker服務(wù)方式不同,請具體查看啟動方式。 確認(rèn)docker安裝成功并且docker服務(wù)啟動之后,再繼續(xù)進(jìn)行下一步。


不熟悉Docker的同學(xué),可以去查一下Docker的簡單命令介紹,這里我們給出CentOS下面常用的命令:

yum install docker? 安裝服務(wù)systemctl start docker.service 啟動服務(wù)systemctlenabledocker.service 開機(jī)啟動服務(wù)docker pull centos 下載映像到本地docker images centos 查看映像列表docker run -i -t centos /bin/bash 以交互式啟動容器docker run centosecho'Hello World'

其他參考資料:docker 命令

如果使用的是Mac系統(tǒng)版本的Docker,docker-compose會跟隨docker一起被安裝。 如果使用的是CentOS等其他Linux系統(tǒng),需要單獨安裝docker-compose,參考安裝

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)-o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version

推薦的docker-compose版本是:(docker-compose的版本差異影響并不大,安裝新版本即可)

$docker-compose -vdocker-compose version 1.21.2, build a133471

獲得eos的Docker Image

eos的Docker Image 有多種版本,適應(yīng)于不同的應(yīng)用場景:

eosio/builder : 包含編譯eos的所有依賴庫,是eos編譯的一個完整環(huán)境,這樣開發(fā)者就無需安裝各種工具和依賴庫,準(zhǔn)備eos的編譯環(huán)境了。

eosio/eos : 主網(wǎng)節(jié)點使用,比較輕量級,鏡像中不包含編譯智能合約的依賴庫。

eosio/eos-dev : 適用于開發(fā)者的定制環(huán)境,其中包含編譯智能合約需要的相關(guān)工具和依賴庫。

其中eosio/eos 和 eosio/eos-dev 都是繼承了 eosio/builder 然后編譯出來的定制化鏡像。 由于我們是開發(fā)者,因此我們選用eosio/eos-dev 這個Image。 當(dāng)然,如果大家只是想啟動一個節(jié)點,加入主網(wǎng)中,可以直接使用eosio/eos,這個我們在后面會詳細(xì)介紹。

根據(jù)前面的介紹,這里大家可以直接從官方拉取Image:

docker pull eosio/eos-dev:v1.0.8

docker tag eosio/eos-dev:v1.0.8 eosio/eos-dev:latest

此外,也可以自己獲取eos最新代碼之后,在本地使用Dockerfile build出eos-dev Image, 進(jìn)入eos/Docker/dev目錄,執(zhí)行:

docker build.-t eosio/eos-dev:latest

注意

如果不對eos/Docker/dev/Dockerfile 做修改的情況下,使用的事master分支的代碼構(gòu)建的Image

啟動本地節(jié)點的測試環(huán)境

創(chuàng)建volume,供nodeos和keosd掛載使用:

docker volume create --name=local-nodeos-data-volume

docker volume create --name=local-keosd-data-volume

在blockchain/eos/04/docker目錄下,啟動nodeos和keosd:

docker-compose -f docker-compose-local-eosio1.0.yaml up -d

可以查看log日志:

docker logs -f docker_nodeosd_1

得到如下類似日志:?



給cleos命令配置alias

由于我們不希望每次執(zhí)行cleos命令都進(jìn)入docker container中執(zhí)行,因此我們配置了簡短的cleos的alias來代替docker命令:

aliascleos='docker-compose -f docker-compose-local-eosio1.0.yaml exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'

(可以將此alias的定義添加到~/.bash_profile 中,這樣每次終端啟動時候都會自動定義alias) 測試cleos命令是否可用:

cleos get info

注意

以后cleos命令的執(zhí)行必須在docker-compose-local-eosio1.0.yaml文件所在目錄才可以。

此時也可以通過http的請求,直接訪問查詢:

curl http://localhost:8888/v1/chain/get_info


分享一個EOS開發(fā)視頻教程,https://www.lanzous.com/b325759/ ?密碼:d55l

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容