diff --git a/DOCKER/Dockerfile b/DOCKER/Dockerfile index e640d4c05..947301e75 100644 --- a/DOCKER/Dockerfile +++ b/DOCKER/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.7.4 +FROM alpine:3.5 # This is the release of tendermint to pull in. ENV TM_VERSION 0.8.0 @@ -12,30 +12,31 @@ ENV DATA_ROOT /tendermint ENV TMROOT $DATA_ROOT # Set user right away for determinism -RUN groupadd -r tmuser && \ - useradd -r -s /bin/false -g tmuser tmuser +RUN addgroup tmuser && \ + adduser -S -G tmuser tmuser # Create directory for persistence and give our user ownership RUN mkdir -p $DATA_ROOT && \ chown -R tmuser:tmuser $DATA_ROOT -# TODO replace with downloading a binary (this will allow us to replace golang -# base container with alpine|jessie - 600MB vs 50MB) -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - git && \ - rm -rf /var/lib/apt/lists/* -RUN mkdir -p $GOPATH/src/github.com/tendermint/tendermint && \ - cd $GOPATH/src/github.com/tendermint/tendermint && \ - git clone https://github.com/tendermint/tendermint.git . && \ - git fetch && \ - git reset --hard v$TM_VERSION && \ - make install +# jq and curl used for extracting `pub_key` from private validator while +# deploying tendermint with Kubernetes. It is nice to have bash so the users +# could execute bash commands. +RUN apk add --no-cache bash curl jq + +RUN apk add --no-cache openssl && \ + wget https://s3-us-west-2.amazonaws.com/tendermint/${TM_VERSION}/tendermint_linux_amd64.zip && \ + echo "83f6bd52055ebc93434a68263c6666a4de41e0e543d0b5a06ad461262c460f4c tendermint_linux_amd64.zip" | sha256sum -c && \ + unzip -d /bin tendermint_linux_amd64.zip && \ + apk del openssl && \ + rm -f tendermint_linux_amd64.zip # Expose the data directory as a volume since there's mutable state in there VOLUME $DATA_ROOT +# p2p port EXPOSE 46656 +# rpc port EXPOSE 46657 ENTRYPOINT ["tendermint"]