|
| 1 | +# UPDATE ME when new version is out !!!! |
| 2 | +ARG BVER=0.6.3 |
| 3 | +ARG CLIVER=0.6.3 |
| 4 | +FROM ubuntu:18.04 as builder |
| 5 | + |
| 6 | +# Dockerfile for running Binance node from binary packages under docker |
| 7 | +# https://docs.binance.org/fullnode.html#run-full-node-to-join-binance-chain |
| 8 | +# MIT license |
| 9 | +LABEL Maintainer = "Evgeny Varnavskiy <[email protected]>" |
| 10 | +LABEL Description="Docker image for Binance full and light nodes" |
| 11 | +LABEL License="MIT License" |
| 12 | + |
| 13 | +ARG DEBIAN_FRONTEND=noninteractive |
| 14 | + |
| 15 | +ARG BVER |
| 16 | +ARG CLIVER |
| 17 | +ARG NODETYPE=fullnode |
| 18 | +#ARG NODETYPE=lightnode |
| 19 | + |
| 20 | +RUN apt-get update && apt-get install -y --no-install-recommends upx ca-certificates wget git git-lfs binutils |
| 21 | +RUN git lfs clone --depth 1 https://github.com/binance-chain/node-binary.git |
| 22 | + |
| 23 | +# RUN upx /node-binary/cli/testnet/${CLIVER}/linux/tbnbcli \ |
| 24 | +# && upx /node-binary/cli/prod/${CLIVER}/linux/bnbcli \ |
| 25 | +# && upx /node-binary/${NODETYPE}/testnet/${BVER}/linux/bnbchaind \ |
| 26 | +# && upx /node-binary/${NODETYPE}/prod/${BVER}/linux/bnbchaind |
| 27 | + |
| 28 | +# Final stage |
| 29 | + |
| 30 | +FROM ubuntu:18.04 |
| 31 | + |
| 32 | +ARG HOST_USER_UID=1000 |
| 33 | +ARG HOST_USER_GID=1000 |
| 34 | + |
| 35 | +ARG BVER |
| 36 | +ARG CLIVER |
| 37 | +ENV BVER=$BVER |
| 38 | +ENV CLIVER=$CLIVER |
| 39 | +ARG NODETYPE=fullnode |
| 40 | +#ARG NODETYPE=lightnode |
| 41 | +ENV BNET=testnet |
| 42 | +#ENV BNET=prod |
| 43 | +ENV BNCHOME=/opt/bnbchaind |
| 44 | + |
| 45 | +COPY --from=builder /node-binary/cli/testnet/${CLIVER}/linux/tbnbcli /node-binary/cli/testnet/${BVER}/linux/ |
| 46 | +COPY --from=builder /node-binary/cli/prod/${CLIVER}/linux/bnbcli /node-binary/cli/prod/${BVER}/linux/ |
| 47 | +COPY --from=builder /node-binary/${NODETYPE}/testnet/${BVER}/linux/bnbchaind /node-binary/fullnode/testnet/${BVER}/linux/ |
| 48 | +COPY --from=builder /node-binary/${NODETYPE}/prod/${BVER}/linux/bnbchaind /node-binary/fullnode/prod/${BVER}/linux/ |
| 49 | +COPY --from=builder /node-binary/${NODETYPE}/testnet/${BVER}/config/* /node-binary/fullnode/testnet/${BVER}/config/ |
| 50 | +COPY --from=builder /node-binary/${NODETYPE}/prod/${BVER}/config/* /node-binary/fullnode/prod/${BVER}/config/ |
| 51 | +COPY ./bin/*.sh /usr/local/bin/ |
| 52 | + |
| 53 | +RUN set -ex \ |
| 54 | +&& chmod +x /usr/local/bin/*.sh \ |
| 55 | +&& mkdir -p "$BNCHOME" \ |
| 56 | +&& groupadd --gid "$HOST_USER_GID" bnbchaind \ |
| 57 | +&& useradd --uid "$HOST_USER_UID" --gid "$HOST_USER_GID" --shell /bin/bash --no-create-home bnbchaind \ |
| 58 | +&& chown -R bnbchaind:bnbchaind "$BNCHOME" |
| 59 | + |
| 60 | +VOLUME ${BNCHOME} |
| 61 | + |
| 62 | +# RPC service listen on port 27147 and P2P service listens on port 27146 by default. |
| 63 | +# Prometheus is enabled on port 26660 by default, and the endpoint is /metrics. |
| 64 | + |
| 65 | +EXPOSE 27146 27147 26660 |
| 66 | + |
| 67 | +ENTRYPOINT ["entrypoint.sh"] |
0 commit comments