mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-07 05:46:32 +00:00
- 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)
45 lines
1.4 KiB
Docker
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"]
|