Skip to content

Building the Docker Images

ENSRainbow is split into two Docker images to minimize long-running rebuilds of the LevelDB data directory used for rainbow table lookups. The namehash/ensnode/ensrainbow-data image hosts the prebuilt LevelDB data at /app/data and namehash/ensnode/ensrainbow imports that directory after building the apps/ensrainbow project.

ENSRainbow-data (namehash/ensnode/ensrainbow-data)

This image downloads the source ens_names.sql.gz and ingests them to produce the output /app/data directory.

Terminal window
# from the monorepo root
docker build -f apps/ensrainbow/Dockerfile.data -t ghcr.io/namehash/ensnode/ensrainbow-data .

ENSRainbow (namehash/ensnode/ensrainbow)

Terminal window
# from the monorepo root
docker build -f apps/ensrainbow/Dockerfile -t ghcr.io/namehash/ensnode/ensrainbow .

ENSRainbow-v2-data (ghcr.io/<your-repo>/ensrainbow-v2-data)

This image includes the latest LevelDB data for rainbow table lookups. It uses the DATA_VERSION=v2 build argument to ensure the correct version is built.

Terminal window
# from the monorepo root
docker build -f apps/ensrainbow/Dockerfile.data --build-arg DATA_VERSION=v2 -t ghcr.io/namehash/ensnode/ensrainbow-v2-data .

ENSRainbow v2 (ghcr.io/<your-repo>/ensrainbow-v2)

This image builds the ENSRainbow v2 app and uses the ensrainbow-v2-data image for its data.

Terminal window
# from the monorepo root
docker build -f apps/ensrainbow/Dockerfile --build-arg DATA_IMAGE_NAME=ensrainbow-v2-data -t ghcr.io/namehash/ensnode/ensrainbow-v2 .