https://github.com/tendermint/tendermint
Raw File
Tip revision: 0ed7b120fa6c737d7be8b3ccd039555ebbb99d9a authored by Marko on 11 August 2020, 09:23:41 UTC
changelog: rc0/33.8 (#5222)
Tip revision: 0ed7b12
Dockerfile
FROM alpine:3.9
LABEL maintainer="hello@tendermint.com"

# Tendermint will be looking for the genesis file in /tendermint/config/genesis.json
# (unless you change `genesis_file` in config.toml). You can put your config.toml and
# private validator file into /tendermint/config.
#
# The /tendermint/data dir is used by tendermint to store state.
ENV TMHOME /tendermint

# OS environment setup
# Set user right away for determinism, create directory for persistence and give our user ownership
# 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 update && \
    apk upgrade && \
    apk --no-cache add curl jq bash && \
    addgroup tmuser && \
    adduser -S -G tmuser tmuser -h "$TMHOME"

# Run the container with tmuser by default. (UID=100, GID=1000)
USER tmuser

WORKDIR $TMHOME

# p2p, rpc and prometheus port
EXPOSE 26656 26657 26660

ENTRYPOINT ["/usr/bin/tendermint"]
CMD ["node"]
STOPSIGNAL SIGTERM

ARG BINARY=tendermint
COPY $BINARY /usr/bin/tendermint

# Create default configuration for docker run.
RUN /usr/bin/tendermint init && \
    sed -i \
      -e 's/^proxy_app\s*=.*/proxy_app = "kvstore"/' \
      -e 's/^moniker\s*=.*/moniker = "dockernode"/' \
      -e 's/^addr_book_strict\s*=.*/addr_book_strict = false/' \
      -e 's/^timeout_commit\s*=.*/timeout_commit = "500ms"/' \
      -e 's/^index_all_tags\s*=.*/index_all_tags = true/' \
      -e 's,^laddr = "tcp://127.0.0.1:26657",laddr = "tcp://0.0.0.0:26657",' \
      -e 's/^prometheus\s*=.*/prometheus = true/' \
      $TMHOME/config/config.toml && \
    sed -i \
      -e 's/^\s*"chain_id":.*/  "chain_id": "dockerchain",/' \
      $TMHOME/config/genesis.json

# Expose the data directory as a volume since there's mutable state in there
VOLUME [ $TMHOME ]

back to top