diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2019-06-27 11:17:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-27 11:17:44 +0100 |
commit | b1b8a24b63c6c8b2076a3070c26e5ee2e8d6edb7 (patch) | |
tree | e89fe41b728fa578c8a0bb94bcd0ea1b9accd9c2 /docker | |
parent | Merge pull request #5562 from matrix-org/rav/docker/no-generate-keys (diff) | |
parent | changelog (diff) | |
download | synapse-b1b8a24b63c6c8b2076a3070c26e5ee2e8d6edb7.tar.xz |
Merge pull request #5563 from matrix-org/rav/docker/data_dir
Docker image: add support for SYNAPSE_DATA_DIR parameter
Diffstat (limited to 'docker')
-rw-r--r-- | docker/README.md | 11 | ||||
-rwxr-xr-x | docker/start.py | 17 |
2 files changed, 24 insertions, 4 deletions
diff --git a/docker/README.md b/docker/README.md index 5a596eecb9..5c85c538a8 100644 --- a/docker/README.md +++ b/docker/README.md @@ -179,3 +179,14 @@ docker run -d --name synapse \ -e SYNAPSE_CONFIG_PATH=/data/homeserver.yaml \ matrixdotorg/synapse:latest ``` + +The following environment variables are supported in this mode: + +* `SYNAPSE_SERVER_NAME` (mandatory): the server public hostname. +* `SYNAPSE_REPORT_STATS` (mandatory, `yes` or `no`): whether to enable + anonymous statistics reporting. +* `SYNAPSE_CONFIG_PATH` (mandatory): path to the file to be generated. +* `SYNAPSE_DATA_DIR`: where the generated config will put persistent data + such as the datatase and media store. Defaults to `/data`. +* `UID`, `GID`: the user id and group id to use for creating the data + directories. Defaults to `991`, `991`. diff --git a/docker/start.py b/docker/start.py index 59527a5883..1e6acb464c 100755 --- a/docker/start.py +++ b/docker/start.py @@ -122,11 +122,12 @@ def generate_config_from_template(environ, ownership): return config_path -def run_generate_config(environ): +def run_generate_config(environ, ownership): """Run synapse with a --generate-config param to generate a template config file Args: - environ (dict): environment dictionary + environ (dict): env var dict + ownership (str): "userid:groupid" arg for chmod Never returns. """ @@ -134,6 +135,11 @@ def run_generate_config(environ): if v not in environ: error("Environment variable '%s' is mandatory in `generate` mode." % (v,)) + data_dir = environ.get("SYNAPSE_DATA_DIR", "/data") + + # make sure that synapse has perms to write to the data dir. + subprocess.check_output(["chown", ownership, data_dir]) + args = [ "python", "-m", @@ -144,8 +150,11 @@ def run_generate_config(environ): environ["SYNAPSE_REPORT_STATS"], "--config-path", environ["SYNAPSE_CONFIG_PATH"], + "--data-directory", + data_dir, "--generate-config", ] + # log("running %s" % (args, )) os.execv("/usr/local/bin/python", args) @@ -153,9 +162,9 @@ def main(args, environ): mode = args[1] if len(args) > 1 else None ownership = "{}:{}".format(environ.get("UID", 991), environ.get("GID", 991)) - # In generate mode, generate a configuration, missing keys, then exit + # In generate mode, generate a configuration and missing keys, then exit if mode == "generate": - return run_generate_config(environ) + return run_generate_config(environ, ownership) # In normal mode, generate missing keys if any, then run synapse if "SYNAPSE_CONFIG_PATH" in environ: |