0
0
Fork 0
mirror of https://github.com/matrix-org/dendrite synced 2024-11-13 21:31:08 +01:00
dendrite/build/docker
networkException 40fec70d13
Add pinecone demo container image (#2710)
This pull request adds the configuration and CI steps to build and
publish a container wrapping the `dendrite-demo-pinecone` command as
well as fixes a sentence structure issue in the pull request template.

As this does not touch any go source code no tests have been added

### Pull Request Checklist

<!-- Please read docs/CONTRIBUTING.md before submitting your pull
request -->

* [x] I have added tests for PR _or_ I have justified why this PR
doesn't need tests.
* [x] Pull request includes a [sign
off](https://github.com/matrix-org/dendrite/blob/main/docs/CONTRIBUTING.md#sign-off)

Signed-off-by: networkException <git@nwex.de> (by private sign-off)
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-09-27 09:39:39 +01:00
..
postgres Remove references to userapi_devices (fixes #2259) 2022-03-09 16:38:50 +00:00
DendriteJS.Dockerfile Fix DendriteJS dockerfile 2022-02-08 16:18:16 +00:00
docker-compose.monolith.yml Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
docker-compose.polylith.yml Remove eduserver (#2306) 2022-03-29 14:14:35 +02:00
Dockerfile.demo-pinecone Add pinecone demo container image (#2710) 2022-09-27 09:39:39 +01:00
Dockerfile.monolith Remove goose from Dockerfiles 2022-07-25 14:46:35 +01:00
Dockerfile.polylith Remove goose from Dockerfiles 2022-07-25 14:46:35 +01:00
images-build.sh Update GHA Docker Hub builds 2021-01-18 12:24:23 +00:00
images-pull.sh Multi-personality polylith binary (#1552) 2020-10-20 16:11:24 +01:00
images-push.sh Multi-personality polylith binary (#1552) 2020-10-20 16:11:24 +01:00
README.md Separate sample configs for monolith and polylith (#2456) 2022-05-12 12:05:55 +01:00

Docker images

These are Docker images for Dendrite!

They can be found on Docker Hub:

Dockerfiles

The Dockerfile builds the base image which contains all of the Dendrite components. The Dockerfile.component file takes the given component, as specified with --buildarg component= 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.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 one of the sample config files)
  • 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:

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 as a monolith deployment

Create your config based on the dendrite-sample.monolith.yaml sample configuration file.

Then start the deployment:

docker-compose -f docker-compose.monolith.yml up

Starting Dendrite as a polylith deployment

Create your config based on the dendrite-sample.polylith.yaml sample configuration file.

Then start the deployment:

docker-compose -f docker-compose.polylith.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.