diff options
Diffstat (limited to 'build/docker/hub/README.md')
-rw-r--r-- | build/docker/hub/README.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/build/docker/hub/README.md b/build/docker/hub/README.md new file mode 100644 index 00000000..fd641143 --- /dev/null +++ b/build/docker/hub/README.md @@ -0,0 +1,68 @@ +# Docker Hub images + +These are Docker Hub-friendly images for Dendrite. + +## Dockerfiles + +The `Dockerfile` builds the base image which contains all of the Dendrite +components. The `Dockerfile.*` files take components from the base image and +produce smaller component-specific images, which are substantially smaller +and do not contain the Go toolchain etc. + +## Compose files + +There are three sample `docker-compose` files: + +- `docker-compose.deps.yml` which runs the Postgres and Kafka prerequisites +- `docker-compose.monolith.yml` which runs a monolith Dendrite deployment +- `docker-compose.polylith.yml` which runs a polylith Dendrite deployment + +## Configuration + +The `docker-compose` files refer to the `/etc/dendrite` volume as where the +runtime config should come from. The mounted folder must contain: + +- `dendrite.yaml` configuration file (based on the sample `dendrite-config.yaml` + in the `docker/hub/config` folder in the [Dendrite repository](https://github.com/matrix-org/dendrite) +- `matrix_key.pem` server key, as generated using `cmd/generate-keys` +- `server.crt` certificate file +- `server.key` private key file for the above certificate + +To generate keys: + +``` +go run github.com/matrix-org/dendrite/cmd/generate-keys \ + --private-key=matrix_key.pem \ + --tls-cert=server.crt \ + --tls-key=server.key +``` + +## Starting Dendrite + +Once in place, start the dependencies: + +``` +docker-compose -f docker-compose.deps.yml up +``` + +Wait a few seconds for Kafka and Postgres to finish starting up, and then start a monolith: + +``` +docker-compose -f docker-compose.monolith.yml up +``` + +... or start the polylith components: + +``` +docker-compose -f docker-compose.polylith.yml up +``` + +## Building the images + +The `docker/hub/images-build.sh` script will build all of the component images. + +The `docker/hub/images-push.sh` script will push them to Docker Hub (subject +to permissions). + +If you wish to build and push your own images, rename `matrixdotorg/dendrite` to +the name of another Docker Hub repository in `images-build.sh` and `images-push.sh`. |