summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Bennée2021-05-12 12:20:24 +0200
committerAlex Bennée2021-05-18 10:35:39 +0200
commitbf46c0eed345714044080539b7d17707dc8e3f2e (patch)
treebdd7bf7887c31f23bf47b7be6307a77ae767641d
parenttests/docker: make executable an optional argument to "update" (diff)
downloadqemu-bf46c0eed345714044080539b7d17707dc8e3f2e.tar.gz
qemu-bf46c0eed345714044080539b7d17707dc8e3f2e.tar.xz
qemu-bf46c0eed345714044080539b7d17707dc8e3f2e.zip
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>
-rwxr-xr-xtests/docker/docker.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 9b3425fec2..7a14058801 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -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")