tests/docker: allow "update" to add the current user

The current user functionality is used for cross compiling to avoid
complications with permissions when building test programs. However
for images that come from the registry we still need the ability to
add the user after the fact.

Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210512102051.12134-5-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2021-05-12 11:20:24 +01:00
parent 8d628d075d
commit bf46c0eed3

View file

@ -517,7 +517,7 @@ class BuildCommand(SubCommand):
class UpdateCommand(SubCommand):
""" Update a docker image with new executables. Args: <tag> <executable>"""
""" Update a docker image. Args: <tag> <actions>"""
name = "update"
def args(self, parser):
@ -525,6 +525,9 @@ class UpdateCommand(SubCommand):
help="Image Tag")
parser.add_argument("--executable",
help="Executable to copy")
parser.add_argument("--add-current-user", "-u", dest="user",
action="store_true",
help="Add the current user to image's passwd")
def run(self, args, argv):
# Create a temporary tarball with our whole build context and
@ -564,6 +567,13 @@ class UpdateCommand(SubCommand):
df.write(u"ADD . /\n")
if args.user:
uid = os.getuid()
uname = getpwuid(uid).pw_name
df.write("\n")
df.write("RUN id %s 2>/dev/null || useradd -u %d -U %s" %
(uname, uid, uname))
df_bytes = BytesIO(bytes(df.getvalue(), "UTF-8"))
df_tar = TarInfo(name="Dockerfile")