github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/DOCKER/Dockerfile (about) 1 FROM alpine:3.9 2 LABEL maintainer="hello@tendermint.com" 3 4 # Tendermint will be looking for the genesis file in /tendermint/config/genesis.json 5 # (unless you change `genesis_file` in config.toml). You can put your config.toml and 6 # private validator file into /tendermint/config. 7 # 8 # The /tendermint/data dir is used by tendermint to store state. 9 ENV TMHOME /tendermint 10 11 # OS environment setup 12 # Set user right away for determinism, create directory for persistence and give our user ownership 13 # jq and curl used for extracting `pub_key` from private validator while 14 # deploying tendermint with Kubernetes. It is nice to have bash so the users 15 # could execute bash commands. 16 RUN apk update && \ 17 apk upgrade && \ 18 apk --no-cache add curl jq bash && \ 19 addgroup tmuser && \ 20 adduser -S -G tmuser tmuser -h "$TMHOME" 21 22 # Run the container with tmuser by default. (UID=100, GID=1000) 23 USER tmuser 24 25 WORKDIR $TMHOME 26 27 # p2p, rpc and prometheus port 28 EXPOSE 26656 26657 26660 29 30 STOPSIGNAL SIGTERM 31 32 ARG BINARY=tendermint 33 COPY $BINARY /usr/bin/tendermint 34 35 # You can overwrite these before the first run to influence 36 # config.json and genesis.json. Additionally, you can override 37 # CMD to add parameters to `tendermint node`. 38 ENV PROXY_APP=kvstore MONIKER=dockernode CHAIN_ID=dockerchain 39 40 COPY ./docker-entrypoint.sh /usr/local/bin/ 41 42 ENTRYPOINT ["docker-entrypoint.sh"] 43 CMD ["node"] 44 45 # Expose the data directory as a volume since there's mutable state in there 46 VOLUME [ "$TMHOME" ] 47