Docker

如何容器化 Eris 服務

  • May 29, 2016

Eris 是一種獨特的架構,它利用了非常有用的優勢,將數據、服務 - 契約、js 容器化到單獨的容器實例中。為了在 docker 中執行 eris,我使用“入門”中的說明在 Dockerfile 中創建了一個 docker 映像。但是,在將 CMD/ENTRYPOINT 設置為指令 eris init 後,我無法使用 docker run -i -t –name test_eris 創建容器實例。這是有道理的,因為 eris 伺服器正在連接到 docker 守護程序來為 eris-db、eris-keys、eris-actions 等拉取圖像。關於在容器中執行 eris 伺服器的方法的問題?1. 在 eris_image 的 Dockerfile 中安裝另一個 docker-daemon。但是,這將在容器架構中創建一個容器。我懷疑這可能會使一個非常需要的橫向可擴展架構不必要地複雜化。建議?2. 我能想到的另一種方法是使用來自 eris-ltd github repo 的 Dockerfile 為 eris-cli、eris-db、eris-keys 等建構單獨的容器映像。如果要採用這種方法,有什麼建議可以確保在創建私有鏈時,在設置此客戶容器的情況下,eris 可以按預期執行?

Eris 是一個 cli 工具,專注於區塊鏈應用程序的容器編排。通常我們建議將其安裝在主機上。當然可以從 docker 內部執行,但會不太方便。

也就是說,我們在 quay.io 上有適用於 eris 的圖像。您還可以提取 eris-cli 儲存庫並從那裡建構規範的 dockerfile。

如果您正在建構自己的,您將希望eris init在 dockerfile 中有一個 RUN 命令。ENTRYPOINT 應該只是 eris。不是 eris 初始化。

不過,從 docker 內部執行 eris 的簡單方法如下。

docker pull quay.io/eris/eris && docker run -v /var/run/docker.sock:/var/run/docker.sock ... quay.io/eris/eris erisCommand

哪裡…是您的 docker 容器所需的任何其他標誌。

引用自:https://ethereum.stackexchange.com/questions/4411