219 lines
6.1 KiB
Docker
219 lines
6.1 KiB
Docker
FROM ubuntu:18.04
|
|
|
|
#===============================================================================
|
|
# Ubuntu setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
apt-get update -y && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
apt-utils \
|
|
autoconf \
|
|
bash \
|
|
bison \
|
|
build-essential \
|
|
ca-certificates \
|
|
dnsutils \
|
|
expect \
|
|
flex \
|
|
git \
|
|
graphviz \
|
|
libbz2-dev \
|
|
libcurl4-openssl-dev \
|
|
libncurses-dev \
|
|
libsnappy-dev \
|
|
libssl-dev \
|
|
libtool \
|
|
libzip-dev \
|
|
locales \
|
|
lsb-release \
|
|
mc \
|
|
nano \
|
|
net-tools \
|
|
ntp \
|
|
openssh-server \
|
|
pkg-config \
|
|
python3 \
|
|
python3-jinja2 \
|
|
sudo \
|
|
systemd-coredump \
|
|
wget
|
|
|
|
ENV HOME /home/peerplays
|
|
RUN useradd -rm -d /home/peerplays -s /bin/bash -g root -G sudo -u 1000 peerplays
|
|
RUN echo "peerplays ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/peerplays
|
|
RUN chmod 440 /etc/sudoers.d/peerplays
|
|
|
|
RUN service ssh start
|
|
RUN echo 'peerplays:peerplays' | chpasswd
|
|
|
|
# SSH
|
|
EXPOSE 22
|
|
|
|
WORKDIR /home/peerplays/src
|
|
|
|
#===============================================================================
|
|
# Boost setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
wget https://boostorg.jfrog.io/artifactory/main/release/1.72.0/source/boost_1_72_0.tar.gz && \
|
|
tar -xzf boost_1_72_0.tar.gz && \
|
|
cd boost_1_72_0 && \
|
|
./bootstrap.sh && \
|
|
./b2 install && \
|
|
ldconfig && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# cmake setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
wget https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.sh && \
|
|
chmod 755 ./cmake-3.24.2-linux-x86_64.sh && \
|
|
./cmake-3.24.2-linux-x86_64.sh --prefix=/usr --skip-license && \
|
|
cmake --version && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# libzmq setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
wget https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.4.tar.gz && \
|
|
tar -xzvf v4.3.4.tar.gz && \
|
|
cd libzmq-4.3.4 && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. && \
|
|
make -j$(nproc) && \
|
|
make install && \
|
|
ldconfig && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# cppzmq setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
wget https://github.com/zeromq/cppzmq/archive/refs/tags/v4.9.0.tar.gz && \
|
|
tar -xzvf v4.9.0.tar.gz && \
|
|
cd cppzmq-4.9.0 && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. && \
|
|
make -j$(nproc) && \
|
|
make install && \
|
|
ldconfig && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# gsl setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
libpcre3-dev
|
|
|
|
RUN \
|
|
wget https://github.com/imatix/gsl/archive/refs/tags/v4.1.4.tar.gz && \
|
|
tar -xzvf v4.1.4.tar.gz && \
|
|
cd gsl-4.1.4 && \
|
|
make -j$(nproc) && \
|
|
make install && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# libbitcoin-build setup
|
|
# libbitcoin-explorer setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
libsodium-dev
|
|
|
|
RUN \
|
|
git clone --branch version3.8.0 --depth 1 https://gitlab.com/PBSA/peerplays-1.0/libbitcoin-explorer.git && \
|
|
cd libbitcoin-explorer && \
|
|
./install.sh && \
|
|
ldconfig && \
|
|
rm -rf /home/peerplays/src/*
|
|
|
|
#===============================================================================
|
|
# Doxygen setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
sudo apt install -y bison flex && \
|
|
wget https://github.com/doxygen/doxygen/archive/refs/tags/Release_1_8_17.tar.gz && \
|
|
tar -xvf Release_1_8_17.tar.gz && \
|
|
cd doxygen-Release_1_8_17 && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. && \
|
|
make -j$(nproc) install && \
|
|
ldconfig
|
|
|
|
#===============================================================================
|
|
# Perl setup
|
|
#===============================================================================
|
|
|
|
RUN \
|
|
wget https://github.com/Perl/perl5/archive/refs/tags/v5.30.0.tar.gz && \
|
|
tar -xvf v5.30.0.tar.gz && \
|
|
cd perl5-5.30.0 && \
|
|
./Configure -des && \
|
|
make -j$(nproc) install && \
|
|
ldconfig
|
|
|
|
#===============================================================================
|
|
# Peerplays setup
|
|
#===============================================================================
|
|
|
|
## Clone Peerplays
|
|
#RUN \
|
|
# git clone https://gitlab.com/PBSA/peerplays.git && \
|
|
# cd peerplays && \
|
|
# git checkout develop && \
|
|
# git submodule update --init --recursive && \
|
|
# git branch --show-current && \
|
|
# git log --oneline -n 5
|
|
|
|
# Add local source
|
|
ADD . peerplays
|
|
|
|
# Configure Peerplays
|
|
RUN \
|
|
cd peerplays && \
|
|
git submodule update --init --recursive && \
|
|
git symbolic-ref --short HEAD && \
|
|
git log --oneline -n 5 && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
|
|
# Build Peerplays
|
|
RUN \
|
|
cd peerplays/build && \
|
|
make -j$(nproc) cli_wallet witness_node
|
|
|
|
WORKDIR /home/peerplays/peerplays-network
|
|
|
|
# Setup Peerplays runimage
|
|
RUN \
|
|
ln -s /home/peerplays/src/peerplays/build/programs/cli_wallet/cli_wallet ./ && \
|
|
ln -s /home/peerplays/src/peerplays/build/programs/witness_node/witness_node ./
|
|
|
|
RUN ./witness_node --create-genesis-json genesis.json && \
|
|
rm genesis.json
|
|
|
|
RUN chown peerplays:root -R /home/peerplays/peerplays-network
|
|
|
|
# Peerplays RPC
|
|
EXPOSE 8090
|
|
# Peerplays P2P:
|
|
EXPOSE 9777
|
|
|
|
# Peerplays
|
|
CMD ["./witness_node", "-d", "./witness_node_data_dir"]
|