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.
# from the monorepo rootdocker build -f apps/ensrainbow/Dockerfile.data -t namehash/ensnode/ensrainbow-data .ENSRainbow (namehash/ensnode/ensrainbow)
# from the monorepo rootdocker build -f apps/ensrainbow/Dockerfile -t 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.
# from the monorepo rootdocker build -f apps/ensrainbow/Dockerfile.data --build-arg DATA_VERSION=v2 -t 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.
# from the monorepo rootdocker build -f apps/ensrainbow/Dockerfile --build-arg DATA_IMAGE_NAME=ensrainbow-v2-data -t namehash/ensnode/ensrainbow-v2 .