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