replace chmod ~ call with a bootstrap script that will chmod all the appropriate directories and also copy from /etc/skel (which won't be done automatically)

This commit is contained in:
Adrian Kuschelyagi Malacoda 2020-08-25 12:08:07 -05:00
parent 42c65b9783
commit 633ef98fab

View File

@ -36,6 +36,16 @@ DEFAULT_COMMAND = ["bash"]
GENERATED_IMAGE_NAME_TEMPLATE = "image_{container_name}" GENERATED_IMAGE_NAME_TEMPLATE = "image_{container_name}"
CREATE_USER_BOOTSTRAP_SCRIPT="""
chown {user} /home/{user}
chown {user} /home/{user}/.config
cd /home/{user}
cp -Rv /etc/skel .
chown -R {user} skel
mv skel/* skel/.* .
rm -rf skel
"""
def get_generated_image_name (container_name): def get_generated_image_name (container_name):
return GENERATED_IMAGE_NAME_TEMPLATE.format(container_name=container_name) return GENERATED_IMAGE_NAME_TEMPLATE.format(container_name=container_name)
@ -56,8 +66,7 @@ def docker_create_user (container, user, uid=None):
if uid is not None: if uid is not None:
command = command + ["--uid", str(uid)] command = command + ["--uid", str(uid)]
call(command) call(command)
call(["docker", "exec", container, "chown", user, f"/home/{user}"]) call(["docker", "exec", container, "sh", "-c", CREATE_USER_BOOTSTRAP_SCRIPT.format(user=user)])
call(["docker", "exec", container, "chown", user, f"/home/{user}/.config"])
def docker_start (container): def docker_start (container):
call(["docker", "start", container]) call(["docker", "start", container])