diff --git a/Dockerfile b/Dockerfile index 0691e9b..65b45fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,62 +1,91 @@ FROM phusion/baseimage:0.9.19 -ENV STEEMD_REV master + +# steem:master as of 2016-08-18 +ARG STEEMD_REPO=https://github.com/steemit/steem.git +ARG STEEMD_REV=045c2a340d254d11dfcd22e1253646132465f9b7 + +# secp256k1:master as of 2016-08-18 +ARG SECP256K1_REPO=https://github.com/bitcoin/secp256k1 +ARG SECP256K1_REV=7a49cacd3937311fcb1cb36b6ba3336fca811991 ARG UBUNTU_MIRROR=mirror://mirrors.ubuntu.com/mirrors.txt -ARG STEEMD_REPO=https://github.com/steemit/steem.git RUN sed -i \ -e s#http://archive.ubuntu.com/ubuntu/#${UBUNTU_MIRROR}#g \ -e s#http://security.ubuntu.com/ubuntu/#${UBUNTU_MIRROR}#g \ /etc/apt/sources.list ; \ + grep -v deb-src /etc/apt/sources.list > \ + /etc/apt/sources.list.new && \ + mv /etc/apt/sources.list.new /etc/apt/sources.list && \ cat /etc/apt/sources.list RUN \ apt-get update && \ apt-get install -y \ + autoconf \ automake \ autotools-dev \ bsdmainutils \ build-essential \ cmake \ + doxygen \ git \ - libboost-chrono-dev \ - libboost-filesystem-dev \ - libboost-program-options-dev \ - libboost-system-dev \ - libboost-test-dev \ - libboost-thread-dev \ - libevent-dev \ - libminiupnpc-dev \ + libboost-all-dev \ + libreadline-dev \ libssl-dev \ libtool \ - libzmq3-dev \ - libzmq5 \ - pkg-config \ + ncurses-dev \ + python3 \ + python3-dev \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN \ - git clone $STEEMD_REPO /usr/local/src/steem && \ - cd /usr/local/src/steem && \ - git checkout $STEEMD_REV && \ + git clone \ + $SECP256K1_REPO \ + /usr/local/src/secp256k1 && \ + cd /usr/local/src/secp256k1 && \ + git checkout $SECP256K1_REV && \ ./autogen.sh && \ - ./configure --enable-hardening && \ - make -j2 && \ + ./configure && \ + make -j8 && \ + ./tests && \ make install && \ cd / && \ + rm -rfv /usr/local/src/secp256k1 + +RUN \ + git clone \ + $STEEMD_REPO \ + /usr/local/src/steem && \ + cd /usr/local/src/steem && \ + git checkout $STEEMD_REV && \ + git submodule update --init --recursive && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DLOW_MEMORY_NODE=ON \ + . \ + && \ + make -j8 && \ + make install && \ rm -rf /usr/local/src/steem +# FIXME run steemd tests as part of build + RUN \ apt-get remove -y \ automake \ autotools-dev \ bsdmainutils \ build-essential \ + doxygen \ git \ + libssl-dev \ libtool \ pkg-config \ + python3-dev \ && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* @@ -74,7 +103,6 @@ EXPOSE 8333 RUN mkdir -p /etc/service/steemd ADD steemd.run /etc/service/steemd/run -RUN mkdir -p /etc/service/steemd/log ADD steemd.log.run /etc/service/steemd/log/run RUN chmod +x /etc/service/steemd/log/run \ diff --git a/Makefile b/Makefile index 9baf1f3..2dbf620 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,15 @@ +BUILD_ARGS := --build-arg UBUNTU_MIRROR="mirror://mirrors.ubuntu.com/mirrors.txt" +ifdef UBUNTU_MIRROR + BUILD_ARGS := --build-arg UBUNTU_MIRROR="$(UBUNTU_MIRROR)" +endif + default: build build: kill - docker build -t sneak/steemd . + docker build \ + -t sneak/steemd \ + $(BUILD_ARGS) \ + . run: kill docker run --name sneak-steemd -d sneak/steemd diff --git a/steemd.log.run b/steemd.log.run index 0f1a522..91ab421 100644 --- a/steemd.log.run +++ b/steemd.log.run @@ -1,2 +1,2 @@ #!/bin/sh -exec chpst -usyslog logger -t steemd +exec chpst -udaemon svlogd -tt /var/log/steemd diff --git a/steemd.run b/steemd.run index 92142a8..1c5859b 100644 --- a/steemd.run +++ b/steemd.run @@ -1,14 +1,37 @@ #!/bin/bash -export HOME="/var/lib/steem" +set -x + +export HOME="/var/lib/steemd" -# gen random pw for rpc server RANDOMPW=$(dd if=/dev/urandom bs=10 count=1 status=none | shasum | cut -b 1-20) -chown -R steem:steem $HOME +chown -R steemd:steemd $HOME -exec chpst -usteem \ - steemd $ARGS \ +SEED_NODES=" + 52.38.66.234:2001 + 52.37.169.52:2001 + 52.26.78.244:2001 + 192.99.4.226:2001 + 46.252.27.1:1337 + 81.89.101.133:2001 + 52.4.250.181:39705 + steemd.pharesim.me:2001 + seed.steemed.net:2001 + steem.clawmap.com:2001 + seed.steemwitness.com:2001 + steem-seed1.abit-more.com:2001 +" +ARGS="" +for NODE in $SEED_NODES ; do + ARGS+=" --seed-node=$NODE" +done + +cd $HOME +chpst -usteemd \ + steemd \ + --rpc-endpoint=0.0.0.0:8090 \ + $ARGS \ $STEEMD_EXTRA_OPTS \ - 2>&1 + 2>&1 | logger -t steemd