bsc/docs/docker/README.md
Jason Yi 37b7ac7b71
feat: update dockerfile with a few enhancement (#998)
* feat: refactor dockerfile to add entrypoint script
2022-07-20 12:07:00 +08:00

2.0 KiB

Docker Image

Included in this repo is a Dockerfile that you can launch BSC node for trying it out. Docker images are available on ghcr.io/bnb-chain/bsc.

You can build the docker image with the following commands:

make docker

If your build machine has an ARM-based chip, like Apple silicon (M1), the image is built for linux/arm64 by default. To build for x86_64, apply the --platform arg:

docker build --platform linux/amd64 -t bnb-chain/bsc -f Dockerfile .

Before start the docker, get a copy of the config.toml & genesis.json from the release: https://github.com/bnb-chain/bsc/releases, and make necessary modification. config.toml & genesis.json should be mounted into /bsc/config inside the container. Assume config.toml & genesis.json are under ./config in your current working directory, you can start your docker container with the following command:

docker run -v $(pwd)/config:/bsc/config --rm --name bsc -it bnb-chain/bsc 

You can also use ETHEREUM OPTIONS to overwrite settings in the configuration file

docker run -v $(pwd)/config:/bsc/config --rm --name bsc -it bnb-chain/bsc --http.addr 0.0.0.0 --http.port 8545 --http.vhosts '*' --verbosity 3

If you need to open another shell, just do:

docker exec -it bnb-chain/bsc /bin/bash

We also provide a docker-compose file for local testing

To use the container in kubernetes, you can use a configmap or secret to mount the config.toml & genesis.json into the container

containers:
  - name: bsc
    image: bnb-chain/bsc

    ports:
      - name: p2p
        containerPort: 30311  
      - name: rpc
        containerPort: 8545
      - name: ws
        containerPort: 8546     

    volumeMounts:
      - name: bsc-config
        mountPath: /bsc/config

  volumes:
    - name: bsc-config
      configMap:
        name: cm-bsc-config

Your configmap bsc-config should look like this:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cm-bsc-config
data:
  config.toml: |
    ...

  genesis.json: |
    ...