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