Skip to content

Commit

Permalink
tests/docker: allow "update" to add the current user
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
stsquad committed May 18, 2021
1 parent 8d628d0 commit bf46c0e
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion tests/docker/docker.py
Expand Up @@ -517,14 +517,17 @@ def run(self, args, argv):


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):
parser.add_argument("tag",
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
Expand Down Expand Up @@ -564,6 +567,13 @@ def run(self, args, argv):

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")
Expand Down

0 comments on commit bf46c0e

Please sign in to comment.