* Fix #897 and shuffle directory around * Update find-lint * goimports Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| config | ||
| docker-compose.deps.yml | ||
| docker-compose.monolith.yml | ||
| docker-compose.polylith.yml | ||
| Dockerfile | ||
| Dockerfile.component | ||
| images-build.sh | ||
| images-push.sh | ||
| README.md | ||
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.ymlwhich runs the Postgres and Kafka prerequisitesdocker-compose.monolith.ymlwhich runs a monolith Dendrite deploymentdocker-compose.polylith.ymlwhich 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.yamlconfiguration file (based on the sampledendrite-config.yamlin thedocker/hub/configfolder in the Dendrite repositorymatrix_key.pemserver key, as generated usingcmd/generate-keysserver.crtcertificate fileserver.keyprivate 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.