tendermint/DOCKER/Dockerfile

45 lines
1.4 KiB
Docker

FROM golang:1.7.4
# This is the release of tendermint to pull in.
ENV TM_VERSION 0.8.0
# Tendermint will be looking for genesis file in /tendermint (unless you change
# `genesis_file` in config.toml). You can put your config.toml and private
# validator file into /tendermint.
#
# The /tendermint/data dir is used by tendermint to store state.
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
# 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
# Expose the data directory as a volume since there's mutable state in there
VOLUME $DATA_ROOT
EXPOSE 46656
EXPOSE 46657
ENTRYPOINT ["tendermint"]
# By default you'll get the dummy app
CMD ["node", "--moniker=`hostname`", "--proxy_app=dummy"]