aboutsummaryrefslogtreecommitdiff
path: root/build/docker/hub/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'build/docker/hub/README.md')
-rw-r--r--build/docker/hub/README.md68
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`.