This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge the Complement testing Docker images into a single, multi-purpo…
…se image. (#12881) Co-authored-by: Richard van der Hoff <[email protected]>
- Loading branch information
1 parent
c316fe8
commit 67f51c8
Showing
18 changed files
with
276 additions
and
371 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Merge the Complement testing Docker images into a single, multi-purpose image. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,45 @@ | ||
# A dockerfile which builds an image suitable for testing Synapse under | ||
# complement. | ||
|
||
# This dockerfile builds on top of 'docker/Dockerfile-workers' in matrix-org/synapse | ||
# by including a built-in postgres instance, as well as setting up the homeserver so | ||
# that it is ready for testing via Complement. | ||
# | ||
# Instructions for building this image from those it depends on is detailed in this guide: | ||
# https://github.com/matrix-org/synapse/blob/develop/docker/README-testing.md#testing-with-postgresql-and-single-or-multi-process-synapse | ||
ARG SYNAPSE_VERSION=latest | ||
FROM matrixdotorg/synapse-workers:$SYNAPSE_VERSION | ||
|
||
# Install postgresql | ||
RUN apt-get update && \ | ||
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y postgresql-13 | ||
|
||
# Configure a user and create a database for Synapse | ||
RUN pg_ctlcluster 13 main start && su postgres -c "echo \ | ||
\"ALTER USER postgres PASSWORD 'somesecret'; \ | ||
CREATE DATABASE synapse \ | ||
ENCODING 'UTF8' \ | ||
LC_COLLATE='C' \ | ||
LC_CTYPE='C' \ | ||
template=template0;\" | psql" && pg_ctlcluster 13 main stop | ||
|
||
# Extend the shared homeserver config to disable rate-limiting, | ||
# set Complement's static shared secret, enable registration, amongst other | ||
# tweaks to get Synapse ready for testing. | ||
# To do this, we copy the old template out of the way and then include it | ||
# with Jinja2. | ||
RUN mv /conf/shared.yaml.j2 /conf/shared-orig.yaml.j2 | ||
COPY conf/workers-shared-extra.yaml.j2 /conf/shared.yaml.j2 | ||
|
||
FROM matrixdotorg/synapse:${SYNAPSE_VERSION} | ||
|
||
ENV SERVER_NAME=localhost | ||
|
||
COPY conf/* /conf/ | ||
WORKDIR /data | ||
|
||
# generate a signing key | ||
RUN generate_signing_key -o /conf/server.signing.key | ||
COPY conf/postgres.supervisord.conf /etc/supervisor/conf.d/postgres.conf | ||
|
||
WORKDIR /data | ||
# Copy the entrypoint | ||
COPY conf/start_for_complement.sh / | ||
|
||
# Expose nginx's listener ports | ||
EXPOSE 8008 8448 | ||
|
||
ENTRYPOINT ["/conf/start.sh"] | ||
ENTRYPOINT ["/start_for_complement.sh"] | ||
|
||
# Update the healthcheck to have a shorter check interval | ||
HEALTHCHECK --start-period=5s --interval=1s --timeout=1s \ | ||
CMD curl -fSs http://localhost:8008/health || exit 1 | ||
CMD /bin/sh /healthcheck.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,32 @@ | ||
Stuff for building the docker image used for testing under complement. | ||
# Unified Complement image for Synapse | ||
|
||
This is an image for testing Synapse with [the *Complement* integration test suite][complement]. | ||
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 (`SYNAPSE_COMPLEMENT_DATABASE=sqlite`) | ||
- Monolithic Synapse with Postgres (`SYNAPSE_COMPLEMENT_DATABASE=postgres`) | ||
- Workerised Synapse with Postgres (`SYNAPSE_COMPLEMENT_DATABASE=postgres` and `SYNAPSE_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`][complementEnv] | ||
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. | ||
|
||
|
||
[complement]: https://github.com/matrix-org/complement | ||
[complementEnv]: https://github.com/matrix-org/complement/pull/382 |
This file was deleted.
Oops, something went wrong.
61 changes: 0 additions & 61 deletions
61
docker/complement/conf-workers/start-complement-synapse-workers.sh
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.