Merge pull request #5565 from matrix-org/rav/docker/fix_log_config

Docker: generate our own log config
This commit is contained in:
Richard van der Hoff 2019-06-27 11:19:37 +01:00 committed by GitHub
commit b4db70e167
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

1
changelog.d/5565.feature Normal file
View File

@ -0,0 +1 @@
Docker: Send synapse logs to the docker logging system, by default.

View File

@ -186,6 +186,8 @@ The following environment variables are supported in this mode:
* `SYNAPSE_REPORT_STATS` (mandatory, `yes` or `no`): whether to enable * `SYNAPSE_REPORT_STATS` (mandatory, `yes` or `no`): whether to enable
anonymous statistics reporting. anonymous statistics reporting.
* `SYNAPSE_CONFIG_PATH` (mandatory): path to the file to be generated. * `SYNAPSE_CONFIG_PATH` (mandatory): path to the file to be generated.
* `SYNAPSE_CONFIG_DIR`: where additional config files (such as the log config
and event signing key) will be stored. Defaults to `/data`.
* `SYNAPSE_DATA_DIR`: where the generated config will put persistent data * `SYNAPSE_DATA_DIR`: where the generated config will put persistent data
such as the datatase and media store. Defaults to `/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 * `UID`, `GID`: the user id and group id to use for creating the data

View File

@ -135,8 +135,16 @@ def run_generate_config(environ, ownership):
if v not in environ: if v not in environ:
error("Environment variable '%s' is mandatory in `generate` mode." % (v,)) error("Environment variable '%s' is mandatory in `generate` mode." % (v,))
server_name = environ["SYNAPSE_SERVER_NAME"]
config_dir = environ.get("SYNAPSE_CONFIG_DIR", "/data")
data_dir = environ.get("SYNAPSE_DATA_DIR", "/data") data_dir = environ.get("SYNAPSE_DATA_DIR", "/data")
# create a suitable log config from our template
log_config_file = "%s/%s.log.config" % (config_dir, server_name)
if not os.path.exists(log_config_file):
log("Creating log config %s" % (log_config_file,))
convert("/conf/log.config", log_config_file, environ)
# make sure that synapse has perms to write to the data dir. # make sure that synapse has perms to write to the data dir.
subprocess.check_output(["chown", ownership, data_dir]) subprocess.check_output(["chown", ownership, data_dir])
@ -145,11 +153,13 @@ def run_generate_config(environ, ownership):
"-m", "-m",
"synapse.app.homeserver", "synapse.app.homeserver",
"--server-name", "--server-name",
environ["SYNAPSE_SERVER_NAME"], server_name,
"--report-stats", "--report-stats",
environ["SYNAPSE_REPORT_STATS"], environ["SYNAPSE_REPORT_STATS"],
"--config-path", "--config-path",
environ["SYNAPSE_CONFIG_PATH"], environ["SYNAPSE_CONFIG_PATH"],
"--config-directory",
config_dir,
"--data-directory", "--data-directory",
data_dir, data_dir,
"--generate-config", "--generate-config",