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.
This commit is contained in:
parent
36015d68ef
commit
2def5ea0da
|
@ -0,0 +1 @@
|
||||||
|
Provide SYNAPSE_WORKER envvar to specify python module.
|
|
@ -89,6 +89,8 @@ The following environment variables are supported in run mode:
|
||||||
`/data`.
|
`/data`.
|
||||||
* `SYNAPSE_CONFIG_PATH`: path to the config file. Defaults to
|
* `SYNAPSE_CONFIG_PATH`: path to the config file. Defaults to
|
||||||
`<SYNAPSE_CONFIG_DIR>/homeserver.yaml`.
|
`<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`.
|
* `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`.
|
* `TZ`: the [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) the container will run with. Defaults to `UTC`.
|
||||||
|
|
||||||
|
|
|
@ -182,6 +182,7 @@ def main(args, environ):
|
||||||
mode = args[1] if len(args) > 1 else None
|
mode = args[1] if len(args) > 1 else None
|
||||||
desired_uid = int(environ.get("UID", "991"))
|
desired_uid = int(environ.get("UID", "991"))
|
||||||
desired_gid = int(environ.get("GID", "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()):
|
if (desired_uid == os.getuid()) and (desired_gid == os.getgid()):
|
||||||
ownership = None
|
ownership = None
|
||||||
else:
|
else:
|
||||||
|
@ -245,7 +246,7 @@ def main(args, environ):
|
||||||
|
|
||||||
log("Starting synapse with config file " + config_path)
|
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:
|
if ownership is not None:
|
||||||
args = ["su-exec", ownership] + args
|
args = ["su-exec", ownership] + args
|
||||||
os.execv("/sbin/su-exec", args)
|
os.execv("/sbin/su-exec", args)
|
||||||
|
|
Loading…
Reference in New Issue