LoginSignup
4
4

More than 5 years have passed since last update.

DockerでEOSの開発環境作成を行ってみよう!

Last updated at Posted at 2019-02-08

背景

dockerhub eosio/eosを見ると
"This image is now deprecated. Future builds will discontinue on January 1st, 2019. This image will be removed on June 1st, 2019."
と記述があったので,eosio公式のdockerに頼らなくて済むようにDockerfileを記述して環境構築を行ってみた.

1.Dockerfile を作成

Dockerfile
FROM ubuntu:18.04

RUN mkdir -p /root/eosio
VOLUME ["/root/eosio"]
RUN \
  apt-get update -y && \
  apt-get upgrade -y && \
  apt-get install -y software-properties-common && \
  apt-get install -y wget && \
  cd /root/eosio && \
  wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.4.1/eosio.cdt-1.4.1.x86_64.deb && \
  apt install ./eosio.cdt-1.4.1.x86_64.deb && \
  wget https://github.com/eosio/eos/releases/download/v1.6.0/eosio_1.6.0-1-ubuntu-18.04_amd64.deb &&\
  apt install -y ./eosio_1.6.0-1-ubuntu-18.04_amd64.deb
EXPOSE 8888
EXPOSE 7777
EXPOSE 5555
CMD ["/bin/sh"]

2. Dockerイメージを作成し,起動

// eosphi という名前で Dockerfile からイメージをビルド
$ docker build ./ -t eos-docker
Sending build context to Docker daemon  37.38kB
Step 1/9 : FROM ubuntu:18.04
 ---> 20bb25d32758
︙ // 以下略

//docker 起動
$ docker run -it -d --name eosphi \
--publish 7777:7777 \
--publish 5555:5555 \
--volume $(pwd)/:/eos_contracts \
--detach \
eos-docker:latest \
/bin/bash -c \
"keosd --http-server-address=0.0.0.0:5555 & \
exec nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--plugin eosio::http_plugin \
-d /mnt/dev/data \
--config-dir /mnt/dev/config \
--http-server-address=0.0.0.0:7777 \
--access-control-allow-origin=* \
--contracts-console \
--http-validate-host=false \
--filter-on='*'"

コンテナ確認

$ docker logs --tail eosphi
info  2019-02-08T07:57:50.001 thread-0  producer_plugin.cpp:1549      produce_block        ] Produced block 0003b66e45315d8b... #243310 @ 2019-02-08T07:57:50.000 signed by eosio [trxs: 0, lib: 243309, confirmed: 0]
info  2019-02-08T07:57:50.501 thread-0  producer_plugin.cpp:1549      produce_block        ] Produced block 0003b66f5f395133... #243311 @ 2019-02-08T07:57:50.500 signed by eosio [trxs: 0, lib: 243310, confirmed: 0]
info  2019-02-08T07:57:51.000 thread-0  producer_plugin.cpp:1549      produce_block        ] Produced block 0003b670c1a0556c... #243312 @ 2019-02-08T07:57:51.000 signed by eosio [trxs: 0, lib: 243311, confirmed: 0]
info  2019-02-08T07:57:51.505 thread-0  producer_plugin.cpp:1549      produce_block        ] Produced block 0003b6715d6f6874... #243313 @ 2019-02-08T07:57:51.500 signed by eosio [trxs: 0, lib: 243312, confirmed: 0]
info  2019-02-08T07:57:52.001 thread-0  producer_plugin.cpp:1549      produce_block        ] Produced block 0003b672522943cc... #243314 @ 2019-02-08T07:57:52.000 signed by eosio [trxs: 0, lib: 243313, confirmed: 0]

※ブロック番号などの情報は環境によって異なる.

3.コマンドエイリアスを作成.

cleos(cli+eos=cleos)

alias cleos='docker exec -it eosphi /opt/eosio/bin/cleos --url http://127.0.0.1:7777 --wallet-url http://127.0.0.1:5555'

4.ウォレットを作成し管理.

*がついているとアンロック状態

$ cleos wallet create --to-console
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JC2vfyQBnWHU7oKJTj6fmjSpjDnsyqhS1nkiLMcEnHA2HN6wG7"

$ cleos wallet list
Wallets:
[
  "default *"
]
// 名前指定してウォレット作成
$ cleos wallet create -n phi --to-console
Creating wallet: phi
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JC3qDZYNTtnXSTgZjQaEUkBMLAWvSrvsRMbDhKYevYZq1ERx2s"

ウォレットの管理

// ウォレットを全てロック
$ cleos wallet lock_all
Locked All Wallets
// パスワードを入れてあげるとそのウォレットをアンロック
$ cleos wallet unlock
password: Unlocked: default
// アンロック状態のアカウントのみ*がつく
$ cleos wallet list
Wallets:
[
  "default *",
  "phi"
]

以上で「Dockerを用いたEOS開発環境の作成」を行いました.

今回はここまでとなります!
お疲れ様でした!

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4