Deploying Nemesis with Docker Compose
In general, we recommend that people use the ./tools/nemesis-ctl.sh
script to deploy Nemesis. However, more complex deployment scenarios will require understanding how to deploy Nemesis components manually using Docker Compose. The documentation below details how you can launch Nemesis in a variety
Use Published Production Docker Images
Step 1 - Configure environment variables
cp env.example .env
vim .env
Step 2 - Pull and start the images
The examples below show various ways you can pull and start Nemesis.
Example 1: Start production images (no monitoring/jupyter)
docker compose -f compose.yaml up -d
Example 2: Start production images + monitoring
NEMESIS_MONITORING=enabled \
docker compose \
-f compose.yaml \
--profile monitoring \
up -d
Example 3: Start production images + monitoring + jupyter
NEMESIS_MONITORING=enabled \
docker compose \
-f compose.yaml \
-f compose.prod.build.yaml \
--profile monitoring \
--profile jupyter
up -d
Building and Using Production Images Locally
Step 1 - Build base images
docker compose -f compose.base.yaml build
Step 2 - Build & then start production images
Example 4: Build & then start production images without monitoring/jupyter
docker compose \
-f compose.yaml \
-f compose.prod.build.yaml \
up --build -d
Example 5: Build & then start production images with monitoring
NEMESIS_MONITORING=enabled \
docker compose \
-f compose.yaml \
-f compose.prod.build.yaml \
--profile monitoring \
up --build -d
Building and Using Development Images
Development images are not published and must be built locally. If you make any local modifications to project code, you need to build + run the development images.
The easiest method to build + run dev images is to just use the dev
target instead of prod
with ./tools/nemesis-ctl.sh
:
./tools/nemesis-ctl.sh start dev [--monitoring] [--jupyter]
Step 1 - Configure environment variables
cp env.example .env
vim .env
Step 2 - Build base images
docker compose -f compose.base.yaml build
Step 3 - Build and start dev images
Example 6: Build and start dev images without monitoring/jupyter (implicitly merges compose.yaml and compose.override.yaml)
docker compose up -d
Example 7: Build and start dev images with monitoring + jupyter
NEMESIS_MONITORING=enabled \
docker compose \
--profile monitoring \
--profile jupyter \
up -d