Skip to content

Commit

Permalink
generate configuration with correct user in start.py for docker (#16978)
Browse files Browse the repository at this point in the history
  • Loading branch information
swedgwood authored Mar 21, 2024
1 parent 6d3ffdd commit bef765b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
1 change: 1 addition & 0 deletions changelog.d/16978.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Updated start.py to generate config using the correct user ID when running as root (fixes #16824, #15202).
15 changes: 8 additions & 7 deletions docker/start.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,6 @@ def run_generate_config(environ: Mapping[str, str], ownership: Optional[str]) ->
config_path = environ.get("SYNAPSE_CONFIG_PATH", config_dir + "/homeserver.yaml")
data_dir = environ.get("SYNAPSE_DATA_DIR", "/data")

if ownership is not None:
# make sure that synapse has perms to write to the data dir.
log(f"Setting ownership on {data_dir} to {ownership}")
subprocess.run(["chown", ownership, data_dir], check=True)

# 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):
Expand All @@ -189,9 +184,15 @@ def run_generate_config(environ: Mapping[str, str], ownership: Optional[str]) ->
"--generate-config",
"--open-private-ports",
]

if ownership is not None:
# make sure that synapse has perms to write to the data dir.
log(f"Setting ownership on {data_dir} to {ownership}")
subprocess.run(["chown", ownership, data_dir], check=True)
args = ["gosu", ownership] + args

# log("running %s" % (args, ))
flush_buffers()
os.execv(sys.executable, args)
subprocess.run(args, check=True)


def main(args: List[str], environ: MutableMapping[str, str]) -> None:
Expand Down

0 comments on commit bef765b

Please sign in to comment.