From 8185ab8876cad47b7b6a7582fdf2256d765d3120 Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Sun, 14 Jun 2020 02:03:08 -0500 Subject: [PATCH] correctly preserve the host user's uid --- otherworld | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) mode change 100755 => 100644 otherworld diff --git a/otherworld b/otherworld old mode 100755 new mode 100644 index c432278..ad0b0c7 --- a/otherworld +++ b/otherworld @@ -45,8 +45,11 @@ def docker_create (image, container, options, command): def docker_get_user (container, user): return check_output(["docker", "exec", container, "groups", user]) -def docker_create_user (container, user): - call(["docker", "exec", container, "adduser", user, "--gecos", ",,,", "--disabled-password"]) +def docker_create_user (container, user, uid=None): + command = ["docker", "exec", container, "adduser", user, "--gecos", ",,,", "--disabled-password"] + if uid is not None: + command = command + ["--uid", str(uid)] + call(command) call(["docker", "exec", container, "chown", user, f"/home/{user}"]) def docker_start (container): @@ -95,6 +98,7 @@ def expand_user_volumes (volumes): return mappings user = os.environ["USER"] +uid = int(check_output(["id", "-u"]).strip()) image_name = os.environ.get("OW_IMAGE", IMAGE_NAME) container_name = os.environ.get("OW_CONTAINER", f"{CONTAINER_NAME}_{user}") build_path = None @@ -170,7 +174,7 @@ try: except Exception: if not quiet: print(f">> Creating container user: {user}") - docker_create_user(container_name, user) + docker_create_user(container_name, user, uid) if not quiet: print(f">> Welcome to {container_name} (IP {container['NetworkSettings']['IPAddress']})")