summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Kaye <1917473+michaelkaye@users.noreply.github.com>2019-09-19 22:29:47 +0100
committerRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2019-09-19 22:29:47 +0100
commit2def5ea0da4b8134384adcd48e1e312f2f7e65c9 (patch)
treef3c0e1f6e893a60fc63e4a51a6765a001a16f1b5
parentUse unstable prefix for 3PID unbind API (#6062) (diff)
downloadsynapse-2def5ea0da4b8134384adcd48e1e312f2f7e65c9.tar.xz
Docker: support SYNAPSE_WORKER envvar (#6058)
* Allow passing SYNAPSE_WORKER envvar

* changelog.d

* Document SYNAPSE_WORKER.

Attempting to imply that you don't need to change this default
unless you're in worker mode.

Also aware that there's a bigger problem of attempting to document
a complete working configuration of workers using docker, as we
currently only document to use `synctl` for worker mode, and synctl
doesn't work that way in docker.
-rw-r--r--changelog.d/6058.docker1
-rw-r--r--docker/README.md2
-rwxr-xr-xdocker/start.py3
3 files changed, 5 insertions, 1 deletions
diff --git a/changelog.d/6058.docker b/changelog.d/6058.docker
new file mode 100644
index 0000000000..30be6933c9
--- /dev/null
+++ b/changelog.d/6058.docker
@@ -0,0 +1 @@
+Provide SYNAPSE_WORKER envvar to specify python module.
diff --git a/docker/README.md b/docker/README.md
index d5879c2f2c..4b712f3f5c 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -89,6 +89,8 @@ The following environment variables are supported in run mode:
   `/data`.
 * `SYNAPSE_CONFIG_PATH`: path to the config file. Defaults to
   `<SYNAPSE_CONFIG_DIR>/homeserver.yaml`.
+* `SYNAPSE_WORKER`: module to execute, used when running synapse with workers.
+   Defaults to `synapse.app.homeserver`, which is suitable for non-worker mode.
 * `UID`, `GID`: the user and group id to run Synapse as. Defaults to `991`, `991`.
 * `TZ`: the [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) the container will run with. Defaults to `UTC`.
 
diff --git a/docker/start.py b/docker/start.py
index 260f2d9943..e41ea20e70 100755
--- a/docker/start.py
+++ b/docker/start.py
@@ -182,6 +182,7 @@ def main(args, environ):
     mode = args[1] if len(args) > 1 else None
     desired_uid = int(environ.get("UID", "991"))
     desired_gid = int(environ.get("GID", "991"))
+    synapse_worker = environ.get("SYNAPSE_WORKER", "synapse.app.homeserver")
     if (desired_uid == os.getuid()) and (desired_gid == os.getgid()):
         ownership = None
     else:
@@ -245,7 +246,7 @@ def main(args, environ):
 
     log("Starting synapse with config file " + config_path)
 
-    args = ["python", "-m", "synapse.app.homeserver", "--config-path", config_path]
+    args = ["python", "-m", synapse_worker, "--config-path", config_path]
     if ownership is not None:
         args = ["su-exec", ownership] + args
         os.execv("/sbin/su-exec", args)