比特帝国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

比特帝国 首页 EOS EOS教程 EOS高级教程 查看内容

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

2018-6-28 10:24| 发布者: IMEOS| 查看: 531| 评论: 0|原作者: IMEOS



本期 IMEOS 教程是 上期教程 的进阶版,同样由 EOSgeek 社区的 Kenn Zhang 撰写,由大狗稍作修改。


注:本期 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 文件夹。然后输入如下最精简的内容:

version: "3"

services:
  nodeosd:
    image: eosio/eos:latest
    command: /opt/eosio/bin/nodeosd.sh
    working_dir:
      /opt/eosio/bin/
    ports:
      - 8888:8888
      - 9876:9876
    expose:
      - "8888"

第一行是版本信息,下面的内容按照字面意思就可以理解了:

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。

在下一期,我们将回归主线,继续研究智能合约的相关内容。

下期见!


想要更好地学习 EOS 开发,欢迎进群交流,扫码名额有限先到先得:



想要和作者交流,请扫描以下二维码关注作者公众号:




= END =


长按识别下方二维码

即可关注IMEOS.ONE公众号

比特帝国区块链交易所

最新评论

返回顶部