Skip to content
Snippets Groups Projects
Unverified Commit 53faa6a4 authored by Richard van der Hoff's avatar Richard van der Hoff Committed by GitHub
Browse files

Merge pull request #5562 from matrix-org/rav/docker/no-generate-keys

Docker: only run --generate-keys when generating config on-the-fly.
parents 02aeb5a9 7c453472
No related branches found
No related tags found
No related merge requests found
Update Docker image to deprecate the use of environment variables for configuration, and make the use of a static configuration the default.
......@@ -67,10 +67,11 @@ def generate_config_from_template(environ, ownership):
# generate a new secret and write it to a file
if os.path.exists(filename):
log("Reading %s from %s" % (secret, filename))
with open(filename) as handle:
value = handle.read()
else:
log("Generating a random secret for {}".format(name))
log("Generating a random secret for {}".format(secret))
value = codecs.encode(os.urandom(32), "hex").decode()
with open(filename, "w") as handle:
handle.write(value)
......@@ -100,6 +101,24 @@ def generate_config_from_template(environ, ownership):
convert("/conf/homeserver.yaml", config_path, environ)
convert("/conf/log.config", "/compiled/log.config", environ)
subprocess.check_output(["chown", "-R", ownership, "/data"])
# Hopefully we already have a signing key, but generate one if not.
subprocess.check_output(
[
"su-exec",
ownership,
"python",
"-m",
"synapse.app.homeserver",
"--config-path",
config_path,
# tell synapse to put generated keys in /data rather than /compiled
"--keys-directory",
"/data",
"--generate-keys",
]
)
return config_path
......@@ -145,19 +164,15 @@ def main(args, environ):
config_path = generate_config_from_template(environ, ownership)
args = [
"su-exec",
ownership,
"python",
"-m",
"synapse.app.homeserver",
"--config-path",
config_path,
# tell synapse to put any generated keys in /data rather than /compiled
"--keys-directory",
"/data",
]
# Generate missing keys and start synapse
subprocess.check_output(args + ["--generate-keys"])
os.execv("/sbin/su-exec", ["su-exec", ownership] + args)
os.execv("/sbin/su-exec", args)
if __name__ == "__main__":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment