aa8d10a62d
I've noticed when trying to build the Dendrite Pinecone test image, the build fails due to `apk` not being available: <img width="837" alt="image" src="https://github.com/user-attachments/assets/8b483010-a037-4499-b925-a806ae8a82cb"> Checking out the [Docker Hub](https://hub.docker.com/_/golang/) repo for the `golang` image it looks like this can resovle to `1.22-bookworm`, so this should ensure we get an Alpine-based image for this build. ### Pull Request Checklist <!-- Please read https://matrix-org.github.io/dendrite/development/contributing before submitting your pull request --> * [x] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests * [x] Pull request includes a [sign off below using a legally identifiable name](https://matrix-org.github.io/dendrite/development/contributing#sign-off) _or_ I have already signed off privately Signed-off-by: `Rhea Danzey <rdanzey@element.io>` Signed-off-by: Rhea Danzey <rdanzey@element.io> |
||
---|---|---|
.. | ||
DendriteJS.Dockerfile | ||
docker-compose.yml | ||
Dockerfile.demo-pinecone | ||
Dockerfile.demo-yggdrasil | ||
images-build.sh | ||
images-pull.sh | ||
images-push.sh | ||
README.md |
Docker images
These are Docker images for Dendrite!
They can be found on Docker Hub:
- matrixdotorg/dendrite-monolith for monolith deployments
Dockerfile
The Dockerfile
is a multistage file which can build Dendrite. From the root of the Dendrite
repository, run:
docker build . -t matrixdotorg/dendrite-monolith
Compose file
There is one sample docker-compose
files:
docker-compose.yml
which runs a Dendrite deployment with Postgres
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 one of the sample config files)matrix_key.pem
server key, as generated usingcmd/generate-keys
server.crt
certificate fileserver.key
private key file for the above certificate
To generate keys:
docker run --rm --entrypoint="" \
-v $(pwd):/mnt \
matrixdotorg/dendrite-monolith:latest \
/usr/bin/generate-keys \
-private-key /mnt/matrix_key.pem \
-tls-cert /mnt/server.crt \
-tls-key /mnt/server.key
The key files will now exist in your current working directory, and can be mounted into place.
Starting Dendrite
Create your config based on the dendrite-sample.yaml
sample configuration file.
Then start the deployment:
docker-compose -f docker-compose.yml up
Building the images
The build/docker/images-build.sh
script will build the base image, followed by
all of the component images.
The build/docker/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
.