Docker+VS Code=EOS新玩法 | 大狗教你EOS開發(六)

買賣虛擬貨幣

注:本期 IMEOS 教程在 Mac、Ubuntu 等 Linux 核心作業系統、Windows 10 Professional 下適用,Windows 其它版本還請安裝 Linux 雙系統。

昨天我們已經講過了如何使用 Docker 快速的執行起來 EOS 的環境,但是也有同學疑惑的說,為啥我用 docker stop 命令來停止容器之後,下次我再用 docker run 命令來啟動容器會報錯呢?其實吧……你仔細看看錯誤提示資訊就會發現是告訴你同名的容器已經存在了。所以 docker start [容器名]  命令才是正確的容器重啟方法。

對於還不熟悉 Docker 的同學,在終端裡面輸入 docker help 就可以列出各種命令了,然後還可以再繼續檢視列出命令的幫助,例如 docker stop —help
當然,對於我這種懶人,這樣還是感覺麻煩。所以,就有了今天的這篇教程了!

1 瞭解 Docker-compose

Docker-compose 檔案字尾名為 yml(或者 yaml ),可以簡單的理解為是用來配置你的 Docker 容器執行的一系列環境、引數、方式等等的一個配置檔案。頭疼記不住裡面的配置的格式怎麼辦?當然是去抄一份照著改啊。例如 EOS 的官方的 docker-compose.yml 可以從以下地址下載:

https://github.com/EOSIO/eos/blob/master/Docker/docker-compose.yml 

具體裡面各個引數的意思我們回頭再說,您先瞅瞅:


2 安裝配置 VS Code

我們需要一個好的 yaml 編輯工具和容器管理工具,這裡我牆裂推薦微軟的 Visual Studio Code :

https://code.visualstudio.com/ 

免費、開源、功能強大、擴充套件眾多,最重要的是兩個關鍵特性特性:
(1)跨語言——安裝相應的外掛後,能寫市面上幾乎所有程式語言的程式碼。所以在 EOS 程式設計中,不管是JS前端程式碼、 NodeJS 後端程式碼、C++ 智慧合約程式碼,還是配置檔案,一個編輯器就能搞定,節省大量精力。
(2)跨平臺——不管 Windows、MacOS 還是 Linux 用起來都是一樣的。

下載安裝完畢之後,按下 Ctrl+Shift+X( Mac 下為 Command+Shift+X ),或者點選「檢視」>「擴充套件」,開啟擴充套件視窗,然後在搜尋欄輸入 Docker ,安裝由微軟出品的 “Docker” 和 Jun Han 出品的 “Docker Explorer” 兩個外掛。


3 建立 yml 檔案

好了,現在我們在 VS Code 中新建一個 docker-compose.nodeos.yml(其實命名為啥都可以,只不過大家習慣於用 docker-compose 做字首,而且某些外掛對他更加友好) 把它存在一個資料夾中,例如我存在 EOSDocker 資料夾。然後輸入如下最精簡的內容:

<code>version: "3" services: &nbsp;nodeosd: &nbsp; &nbsp;image: eosio/eos:latest &nbsp; &nbsp;command: /opt/eosio/bin/nodeosd.sh &nbsp; &nbsp;working_dir: &nbsp; &nbsp; &nbsp;/opt/eosio/bin/ &nbsp; &nbsp;ports: &nbsp; &nbsp; &nbsp;- 8888:8888 &nbsp; &nbsp; &nbsp;- 9876:9876 &nbsp; &nbsp;expose: &nbsp; &nbsp; &nbsp;- "8888"</code>

第一行是版本資訊,下面的內容按照字面意思就可以理解了:

1)我們需要一個服務,服務名為“nodeosd”。
2)這個服務的映象是 eosio/eos ,標籤為 latest 。
3)啟動起來後要執行的命令是 /opt/eosio/bin/nodeosd.sh。
4)工作路徑為 /opt/eosio/bin/。
5)它需要用到兩個埠: 8888 和 9876 。
6)8888 埠是容器的對外暴露埠,允許外部訪問。


4 執行 yml 檔案,啟動 nodeos 系統

然後,透過「檔案」>「開啟」,開啟 yml 檔案所在的資料夾。注意!是開啟資料夾,開啟檔案是不行的。

然後只要在 Visual Studio Code 裡面左側檔案目錄裡右擊的 yml 檔案選擇 Compose Up 就好啦。

你會在左側的 Docker Containers 目錄裡看到你的這個執行起來的容器(正常的話是綠色圖示),右鍵點選它選擇“Attach”,在 VS Code 下方的整合終端裡就能看到區塊產生的過程了。

停止它?一樣容易啦…右擊這個 yml 檔案,選擇 Compose Down 即可。

除此之外,還可以透過“Execute in Bath”,從 VS Code 的整合終端裡直接進入容器的「裡世界」,看看容器裡到底都有啥……

5 設定 cleos 別名

因為在 Docker 下呼叫 cleos 的命令相對於原生安裝法要長,所以我們可以透過 Linux 中的 alias 命令設定別名,讓 Docker 下的 cleos 和普通方法安裝下的 cleos 一模一樣!
這個設定的命令是這樣子的:

alias cleos='docker-compose exec nodeosd cleos —wallet-url http://localhost:8888'

然後執行:

cleos get info

如果出現以下返回,說明 alias 設定成功了!之後我們該怎麼使用就怎麼使用 cleos 即可。

最後是兩個小貼士:

1)如果不想使用別名了,unalias [別名] 即可。在本例中就是 unalias cleos 。 

2)直接輸入 alias 可以檢視目前的所有別名。


5 總結與預告

透過 第5期 和 第6期 兩期,我們學會了如何透過 Docker 來安裝及執行 EOS 系統,對於直接安裝的時候老是出現奇怪問題的同學應該有所幫助:D。

在下一期,我們將回歸主線,繼續研究智慧合約的相關內容。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;