Moving away from using the default bridge network to using our own. This isolates our services from other Docker containers running on the default network on the same host. The benefits are that: - isolation is a little better - we no longer share a default bridge network with any other containers that might be running on the host - there are no longer hard dependencies - we do service discovery by DNS name, and not via explicit `--link` usage during container start, so containers can start out of order and fail without bringing down others with them (`matrix-nginx-proxy` can continue running, even if one of the other services dies) In the future, when other services get introduced, the increased resilience and simplicity will help as well.
43 lines
1.3 KiB
Django/Jinja
43 lines
1.3 KiB
Django/Jinja
[Unit]
|
|
Description=Matrix Synapse server
|
|
After=docker.service
|
|
Requires=docker.service
|
|
{% if not matrix_postgres_use_external %}
|
|
Requires=matrix-postgres.service
|
|
After=matrix-postgres.service
|
|
{% endif %}
|
|
{% if matrix_s3_media_store_enabled %}
|
|
After=matrix-goofys.service
|
|
Requires=matrix-goofys.service
|
|
{% endif %}
|
|
Wants=matrix-coturn.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStartPre=-/usr/bin/docker kill matrix-synapse
|
|
ExecStartPre=-/usr/bin/docker rm matrix-synapse
|
|
{% if matrix_s3_media_store_enabled %}
|
|
# Allow for some time before starting, so that media store can mount.
|
|
# Mounting can happen later too, but if we start writing,
|
|
# we'd write files to the local filesystem and fusermount will complain.
|
|
ExecStartPre=/bin/sleep 5
|
|
{% endif %}
|
|
ExecStart=/usr/bin/docker run --rm --name matrix-synapse \
|
|
--network {{ matrix_docker_network }} \
|
|
-p 8448:8448 \
|
|
{% if not matrix_nginx_proxy_enabled %}
|
|
-p 127.0.0.1:8008:8008 \
|
|
{% endif %}
|
|
-v {{ matrix_synapse_config_dir_path }}:/data \
|
|
-v {{ matrix_synapse_run_path }}:/matrix-run \
|
|
-v {{ matrix_synapse_storage_path }}:/matrix-storage:slave \
|
|
-e SYNAPSE_CONFIG_PATH=/data/homeserver.yaml \
|
|
{{ docker_matrix_image }}
|
|
ExecStop=-/usr/bin/docker kill matrix-synapse
|
|
ExecStop=-/usr/bin/docker rm matrix-synapse
|
|
Restart=always
|
|
RestartSec=30
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|