Fix Docker files which had been forgotten in #594 and update scripts and docs to remove references to gb.
I also removed the `jenkins` directory which is outdated. We can revert
|
||
|---|---|---|
| .. | ||
| postgres | ||
| services | ||
| build.sh | ||
| dendrite-docker.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
Development with Docker
With docker and docker-compose you can easily spin up a development environment
and start working on dendrite.
Requirements
- docker
- docker-compose (version 3+)
Configuration
Copy the dendrite-docker.yaml file to the root of the project and rename it to
dendrite.yaml. It already contains the defaults used in docker-compose for
networking so you will only have to change things like the server_name or to
toggle naffka.
You can run the following docker-compose commands either from the top directory
specifying the docker-compose file
docker-compose -f docker/docker-compose.yml <cmd>
or from within the docker directory
docker-compose <cmd>
Starting a monolith server
For the monolith server you would need a postgres instance
docker-compose up postgres
and the dendrite component from bin/dendrite-monolith-server
docker-compose up monolith
The monolith will be listening on http://localhost:8008.
You would also have to make the following adjustments to dendrite.yaml.
- Set
use_naffka: true - Uncomment the
database/naffkapostgres url.
Starting a multiprocess server
The multiprocess server requires kafka, zookeeper and postgres
docker-compose up kafka zookeeper postgres
and the following dendrite components
docker-compose up client_api media_api sync_api room_server public_rooms_api
docker-compose up client_api_proxy
The client-api-proxy will be listening on http://localhost:8008.
You would also have to make the following adjustments to dendrite.yaml.
- Set
use_naffka: false - Comment out the
database/naffkapostgres url.
Starting federation
docker-compose up federation_api federation_sender
docker-compose up federation_api_proxy
You can point other Matrix servers to http://localhost:8448.
Creating a new component
You can create a new dendrite component by adding an entry to the docker-compose.yml
file and creating a startup script for the component in docker/services.
For more information refer to the official docker-compose documentation.
new_component:
container_name: dendrite_room_server
hostname: new_component
# Start up script.
entrypoint: ["bash", "./docker/services/new-component.sh"]
# Use the common Dockerfile for all the dendrite components.
build: ./
volumes:
- ..:/build
depends_on:
- another_component
networks:
- internal