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