From db6cd55fefb5a3570183624db67c076d8fcec912 Mon Sep 17 00:00:00 2001 From: Gerard Meijer Date: Fri, 8 Dec 2017 20:54:57 +0100 Subject: [PATCH 1/2] Added dockerfile, testing automated build on Docker Hub --- Dockerfile | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..4b912f84 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,48 @@ +FROM debian:8.9 +MAINTAINER Zjeraar + +RUN \ + apt-get update && \ + apt-get install -yq apt-utils && \ + apt-get install -yq locales && \ + apt-get install -yq build-essential && \ + apt-get install -yq wget && \ + apt-get install -yq git && \ + apt-get install -yq cmake && \ + apt-get install -yq g++ && \ + apt-get install -yq curl && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + dpkg-reconfigure locales && \ + echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && \ + locale-gen + +WORKDIR /tmp + +RUN \ + wget -O boost_1_63_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download && \ + tar xzvf boost_1_63_0.tar.gz && \ + cd boost_1_63_0 && \ + ./bootstrap.sh && \ + ./b2 --prefix=../[boost] link=static install && \ + cd .. && \ + mkdir app + +ADD ./ /tmp/app + +RUN \ + cd app && \ + git submodule update --init --recursive && \ + cmake -DBOOST_ROOT=../[boost] -G "Unix Makefiles" && \ + make rai_node && \ + cp rai_node /usr/local/bin/rai_node && \ + ln -s /usr/local/bin/rai_node /usr/bin/rai_node && \ + cd .. && \ + rm -rf rai_build && \ + rm -rf boost_1_63_0 && \ + rm -f boost_1_63_0.tar.gz && \ + useradd -m -u 7075 rai + +EXPOSE 7075 7076 + +USER rai From 32b5644c3bfa8c1db3745ebab82bb9799260b035 Mon Sep 17 00:00:00 2001 From: Gerard Meijer Date: Sat, 9 Dec 2017 15:59:18 +0100 Subject: [PATCH 2/2] Added dockerfile --- Dockerfile | 34 ++++++++++++++++++++++------------ docker_init.sh | 23 +++++++++++++++++++++++ 2 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 docker_init.sh diff --git a/Dockerfile b/Dockerfile index 4b912f84..7b749b21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,9 @@ FROM debian:8.9 -MAINTAINER Zjeraar +MAINTAINER Zjeraar + +ENV BOOST_BASENAME=boost_1_63_0 \ + BOOST_ROOT=/tmp/boost \ + BOOST_URL=http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download RUN \ apt-get update && \ @@ -20,11 +24,13 @@ RUN \ WORKDIR /tmp RUN \ - wget -O boost_1_63_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download && \ - tar xzvf boost_1_63_0.tar.gz && \ - cd boost_1_63_0 && \ + wget -O ${BOOST_BASENAME}.tar.gz ${BOOST_URL} && \ + tar xzvf ${BOOST_BASENAME}.tar.gz && \ + cd ${BOOST_BASENAME} && \ ./bootstrap.sh && \ - ./b2 --prefix=../[boost] link=static install && \ + ./b2 --prefix=${BOOST_ROOT} link=static install && \ + rm -rf ${BOOST_BASENAME} && \ + rm -f ${BOOST_BASENAME}.tar.gz && \ cd .. && \ mkdir app @@ -33,16 +39,20 @@ ADD ./ /tmp/app RUN \ cd app && \ git submodule update --init --recursive && \ - cmake -DBOOST_ROOT=../[boost] -G "Unix Makefiles" && \ + cmake -DBOOST_ROOT=${BOOST_ROOT} -G "Unix Makefiles" && \ make rai_node && \ cp rai_node /usr/local/bin/rai_node && \ ln -s /usr/local/bin/rai_node /usr/bin/rai_node && \ cd .. && \ - rm -rf rai_build && \ - rm -rf boost_1_63_0 && \ - rm -f boost_1_63_0.tar.gz && \ - useradd -m -u 7075 rai + rm -rf app && \ + rm -rf ${BOOST_ROOT} -EXPOSE 7075 7076 +ADD ./docker_init.sh /usr/local/bin/rai_node_init.sh -USER rai +RUN chmod +x /usr/local/bin/rai_node_init.sh + +WORKDIR /root + +EXPOSE 7075 7076 + +ENTRYPOINT ["/bin/bash", "/usr/local/bin/rai_node_init.sh"] diff --git a/docker_init.sh b/docker_init.sh new file mode 100644 index 00000000..cecfc41e --- /dev/null +++ b/docker_init.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -e + +DATA_DIRECTORY="/root/RaiBlocks" + +# check if data directory exist +if [[ ! $(ls -A "$DATA_DIRECTORY" 2> /dev/null) ]]; then + # this command is going to fail, but needed to initiate the data directory + /usr/local/bin/rai_node --daemon 2> /dev/null || + + echo "please ignore any errors above this line..." + + # replace RPC address in config.json for docker + sed -i "s/\"address\": \"::1\"/\"address\": \"::ffff:0.0.0.0\"/g" "$DATA_DIRECTORY"/config.json +fi + +if [[ $1 ]]; then + echo "executing command $1..." + exec $1 +else + echo "running rai_node --daemon..." + exec /usr/local/bin/rai_node --daemon +fi