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:
parent
8d628d075d
commit
bf46c0eed3
@ -517,7 +517,7 @@ class BuildCommand(SubCommand):
|
|||||||
|
|
||||||
|
|
||||||
class UpdateCommand(SubCommand):
|
class UpdateCommand(SubCommand):
|
||||||
""" Update a docker image with new executables. Args: <tag> <executable>"""
|
""" Update a docker image. Args: <tag> <actions>"""
|
||||||
name = "update"
|
name = "update"
|
||||||
|
|
||||||
def args(self, parser):
|
def args(self, parser):
|
||||||
@ -525,6 +525,9 @@ class UpdateCommand(SubCommand):
|
|||||||
help="Image Tag")
|
help="Image Tag")
|
||||||
parser.add_argument("--executable",
|
parser.add_argument("--executable",
|
||||||
help="Executable to copy")
|
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):
|
def run(self, args, argv):
|
||||||
# Create a temporary tarball with our whole build context and
|
# Create a temporary tarball with our whole build context and
|
||||||
@ -564,6 +567,13 @@ class UpdateCommand(SubCommand):
|
|||||||
|
|
||||||
df.write(u"ADD . /\n")
|
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_bytes = BytesIO(bytes(df.getvalue(), "UTF-8"))
|
||||||
|
|
||||||
df_tar = TarInfo(name="Dockerfile")
|
df_tar = TarInfo(name="Dockerfile")
|
||||||
|
Loading…
Reference in New Issue
Block a user