2020/08/29
[ADA]Cardano Nodeを起動するDockerfileを作りました
やったこと
Building Cardano Node — cardano-node Documentation 1.0.0 documentationの記事を参考にしつつ、最新のソースコードからCardano nodeを起動するDocker imageを開発しました。
Motivation
inputoutput/cardano-node - Docker Hubも準備されていたのですが、将来的に細かい中身の制御などをしたかったので、
debian
ベースのimageで作ることにしました。
inputoutput/cardano-node:1.18.0
Dockerfile
- cardano-node
- cardano-cli
がinstallされたdocker imageを作成しました。
FROM debian:stretch-slim
ENV CARDANO_NODE_VERSION=1.19.0
# Install dependencies
RUN apt-get update -y
RUN apt-get install -y --no-install-recommends \
automake \
build-essential \
pkg-config \
libffi-dev \
libgmp-dev \
libssl-dev \
libtinfo-dev \
libsystemd-dev \
zlib1g-dev \
make \
g++ \
tmux \
git \
jq \
wget \
libncursesw5 \
libtool \
autoconf
# avoid ssl error when wget https site
RUN apt-get install -y --no-install-recommends ca-certificates
# avoid "lookup exception Network.Socket.getAddrInfo" error.
# https://github.com/input-output-hk/cardano-node/issues/953#issuecomment-636761169
RUN apt-get install -y --no-install-recommends netbase
WORKDIR /usr/local/src
# Download, unpack, install and update Cabal
RUN wget https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz && \
tar -xf cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz && \
rm cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz cabal.sig && \
mkdir -p /root/.local/bin && \
mv cabal /root/.local/bin/
ENV PATH=/root/.local/bin:${PATH}
RUN cabal update
# Download and install GHC
RUN wget https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz && \
tar -xf ghc-8.6.5-x86_64-deb9-linux.tar.xz && \
rm ghc-8.6.5-x86_64-deb9-linux.tar.xz && \
cd ghc-8.6.5 && \
./configure && \
make install
# Install Libsodium
RUN git clone https://github.com/input-output-hk/libsodium && \
cd libsodium && \
git checkout 66f017f1 && \
./autogen.sh && \
./configure && \
make && \
make install
ENV LD_LIBRARY_PATH=/usr/local/lib
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# Download the source code for cardano-node and Build and install the node
RUN git clone https://github.com/input-output-hk/cardano-node.git && \
cd cardano-node && \
git fetch --all --tags && \
git checkout tags/${CARDANO_NODE_VERSION} && \
cabal build all && \
cp -p dist-newstyle/build/x86_64-linux/ghc-8.6.5/cardano-node-${CARDANO_NODE_VERSION}/x/cardano-node/build/cardano-node/cardano-node /root/.local/bin/ && \
cp -p dist-newstyle/build/x86_64-linux/ghc-8.6.5/cardano-cli-${CARDANO_NODE_VERSION}/x/cardano-cli/build/cardano-cli/cardano-cli /root/.local/bin/
こちらを元に、起動スクリプトを足して完成になります。
(実際は)1. Get configuration files — cardano-node Documentation 1.0.0 documentationを参考にしてconfigファイルを作成して起動する必要があります。
以上になります。
関連する記事
tmkmsをdockerでビルドしてローカルのdocker-compose環境で利用してみる
tendermintのkey management systemであるtmkmsをsoftsignモードでテスト環境に導入してみる
[22.0]Local環境でbitcoind@Regtestを動かしてみる
version22.0のbitcoind・Regtestネットワークをdocker-composeを使って動作確認をしました
[ADA]Cardano Submit APIを起動するDockerfileを作りました
Cardano Submit APIのDocker imageを作成しました
[ADA]cardano-serialization-lib from Python その2
Emurgo/cardano-serialization-libをベースにしてpyo3を使ってpythonから利用できるようにしました(transaction編)