21daa56ee1
I have a use case where I'd like the Synapse image to start up a postgres instance that I can use, but don't want to force Synapse to use postgres as well. This commit prevents postgres from being started when it has already been explicitly enabled elsewhere. |
||
---|---|---|
.. | ||
conf | ||
Dockerfile | ||
README.md |
Unified Complement image for Synapse
This is an image for testing Synapse with the Complement integration test suite. It contains some insecure defaults that are only suitable for testing purposes, so please don't use this image for a production server.
This multi-purpose image is built on top of Dockerfile-workers
in the parent directory
and can be switched using environment variables between the following configurations:
- Monolithic Synapse with SQLite (default, or
SYNAPSE_COMPLEMENT_DATABASE=sqlite
) - Monolithic Synapse with Postgres (
SYNAPSE_COMPLEMENT_DATABASE=postgres
) - Workerised Synapse with Postgres (
SYNAPSE_COMPLEMENT_DATABASE=postgres
andSYNAPSE_COMPLEMENT_USE_WORKERS=true
)
The image is self-contained; it contains an integrated Postgres, Redis and Nginx.
How to get Complement to pass the environment variables through
To pass these environment variables, use Complement's COMPLEMENT_SHARE_ENV_PREFIX
variable to configure an environment prefix to pass through, then prefix the above options
with that prefix.
Example:
COMPLEMENT_SHARE_ENV_PREFIX=PASS_ PASS_SYNAPSE_COMPLEMENT_DATABASE=postgres
Consult scripts-dev/complement.sh
in the repository root for a real example.
How to modify homeserver.yaml for Complement tests
It's common for MSCs to be gated behind a feature flag like this:
experimental_features:
faster_joins: true
To modify this for the Complement image, modify ./conf/workers-shared-extra.yaml.j2
. Despite the name,
this will affect non-worker mode as well. Remember to rebuild the image (so don't use -e
if using
complement.sh
).