Files
tendermint/DOCKER/Dockerfile
Anton Kaliaev ce18332b52 update Dockerfile
- update golang to 1.7.4
- version as env variable
- change DATA_ROOT from /tendermint/data to /tendermint (it's not just
  data that gets stored in DATA_ROOT; we create data folder on start; as
  a result we get /tendermint/data/data, which is confusing)
- remove noninteractive env vars (do we really need these?)
- remove nodejs dep (some apps may require nodejs, but core is not one
  of them; it was convenient before, but now I believe we ought to
  remove it because other people who are using java do not want a
  bloated container with nodejs)
- build tendermint inside a container (once again, it was convenient
  before, but now I am testing kubernetes and I don't want to wait every
  time TM compiles)
2017-01-27 21:10:13 +04:00

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