パート2 - Dockeriseあなたのブロックチェーンのアプリ


前の記事では、ガナッシュCLIを使用してAWS上でEthereumブロックを構築しました.ブロックはアップですが、それは手動であなたの端末のタブを常に起動して起動する必要がありますganache . EC 2サーバ上でバックグラウンドで実行中のブロックを持つことができ、カスタムドメインをIPアドレスに追加し、APIトークンでセキュアにすることができます.それで、それは我々がこの部分で取り組んでいるものです.
ここではDockerが来るところです.

コンテナをブロックチェーンアプリケーション
Dockerは、すべての依存関係を事前にインストールされたアプリケーションを実行する必要があるときに便利です.
  • ssh EC 2インスタンスにインストールし、これらのコマンドを実行してDockerをインストールします
    $ sudo apt-get update
    
    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    $ echo \
    "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    $ sudo apt-get update
    
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    $ sudo docker run hello-world
    
    最後のコマンドの後にこの出力を見ることができます.


  • Dockerfileを作成する
    新しいファイルを作成するDockerfile 現在のフォルダで.これらの行を追加します.
    # node:alpine will be our base image to create this image
    FROM node:alpine
    
    # Set the /app directory as working directory
    WORKDIR /app
    
    # Install ganache-cli globally
    RUN npm install -g ganache-cli
    
    EXPOSE 8545
    
    # Set the default command for the image
    CMD ["ganache-cli", "-h", "0.0.0.0", "--port", "8545", "--networkId", "5777"] 
    

  • ビルドと実行
    我々は今ビルドし、バックグラウンドでブロックチェーンを実行する準備ができました!
    # Builds the docker image with the name ganache
    sudo docker build -t ganache .
    
    # runs the app. -d will detach the app so that it will in background
    sudo docker run -d -p 8545:8545 ganache
    
    # checks if ganache has run successfully
    sudo docker logs ganache
    

  • あなたのアプリケーションを実行している!
    ポート8545であなたのAWSパブリックIPを訪問してくださいhttp://<YOUR_EC2_IP_ADDRESS>:8545 ).