LoginSignup
3
2

More than 3 years have passed since last update.

最短2文でLibraのテストネットを立ち上げるDockerイメージ作りました

Last updated at Posted at 2019-07-29

6月28日、29日に開催されたG20でも議論されたと言われる話題のLibra、登場早々さまざまな方面に影響を与えています。そんなLibraを手軽に体感できるように、最短で2文で実行できるDockerイメージを作ったので紹介します!

前提知識と下準備

前提としてお使いのPCにDockerがインストールされている必要があります。Dockerはコンテナ技術を使った仮想環境を構築でき、スクラップ&ビルドがしやすいため、今回のような実験的なプログラムを動かしやすいメリットがあります。また、Dockerイメージと呼ばれるファイルシステムを利用することで同じ環境を構築することができるため配布がしやすいという長所もあります。

DockerイメージはDockerfileと呼ばれるファイルによって定義されます。

Dockerイメージの紹介

今回作成したDockerイメージは以下のようなDockerfileで定義されています。こちらのファイルはGitHubでも確認できるようにしています。
https://github.com/Naokiakazawa/libratest-docker

Dockerfile
FROM ubuntu:19.04
SHELL ["/bin/bash", "-c"]
RUN apt-get update \
    && apt-get -y upgrade \
    && apt-get -y install \
        cmake \
        curl \
        git \
        golang \
        libssl-dev \
        protobuf-compiler \
        sudo \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && git clone https://github.com/libra/libra.git
WORKDIR /libra
RUN yes | ./scripts/dev_setup.sh \
    && source /root/.cargo/env \
    && cargo build
CMD [ "./scripts/cli/start_cli_testnet.sh" ]

使い方

今回作成したDockerイメージは、DockerHub上で公開しています。
https://hub.docker.com/r/naokiakazawa/libra-test

DockerHubはさまざまなDockerイメージが公開されているプラットフォームで、ログインすれば便利なイメージを利用することができます。Dockerのインストールやログインなどが問題なければ、この節にある2つのコマンドでテストネットを立ち上げることができます。

まず、DockerHubのDockerイメージをローカル環境にプルしましょう。まず1つ目のコマンドはdocker pullを使って以下のようになります。

コマンド1つ目
docker pull naokiakazawa/libra-test 

プルできたら次にdocker runを使って、以下のコマンドでイメージからコンテナを立ち上げます。これが2つ目のコマンドになります。

コマンド2つ目
docker run --name libratestnet -it naokiakazawa/libra-test 

なお、--name libratestnetでは立ち上げるコンテナの名前をlibratestnetとすることを定義しています。また、この時、docker runの末尾に/bin/bashなどのようなコマンドをつけないようにしてください。Dockerfileの最後にあるCMD命令の内容が上書きされるため、正しく動作しません。

うまく起動すればLibraコマンドが実行できるようになります。libra#というプロンプトが出れば問題ありません。

ただし、2点注意があります

  • Dockerイメージのデータサイズが約15GBほどあります。テストネットの環境を丸ごとコンテナの中に展開しているのでデータが少々大きくなります。
  • データサイズが大きいため、イメージをプルする時間が少しかかります。

まとめ

この度は、PCのローカル環境を汚すことなく、手軽に試せるようにするためDockerイメージを作ってDockerHubで公開しました。

ただ少しデータサイズが大きくなってしまうため、今後小さくしてみたいと思います。(たぶんベースイメージを小さいものにしたり、マルチステージビルドをしてみたりするとうまくいくはず…)

3
2
0

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
3
2