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"]