From 6cac65c841bc1b52780d8784c3fcca752d03eb1d Mon Sep 17 00:00:00 2001 From: Matej Vasek Date: Mon, 12 Jul 2021 14:56:55 +0200 Subject: fix: uid/gid for volume mounted to existing dir If mounting to existing directory the uid/gid should be preserved. Primary uid/gid of container shouldn't be used. Signed-off-by: Matej Vasek --- test/python/docker/compat/test_containers.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/python/docker/compat/test_containers.py') diff --git a/test/python/docker/compat/test_containers.py b/test/python/docker/compat/test_containers.py index 511ab1451..38ac5b59f 100644 --- a/test/python/docker/compat/test_containers.py +++ b/test/python/docker/compat/test_containers.py @@ -7,6 +7,7 @@ from typing import IO, Optional from docker import DockerClient, errors from docker.models.containers import Container +from docker.models.images import Image from test.python.docker import Podman from test.python.docker.compat import common, constant @@ -237,3 +238,16 @@ class TestContainers(unittest.TestCase): if ctr is not None: ctr.stop() ctr.remove() + + def test_mount_preexisting_dir(self): + dockerfile = (B'FROM quay.io/libpod/alpine:latest\n' + B'USER root\n' + B'RUN mkdir -p /workspace\n' + B'RUN chown 1042:1043 /workspace') + img: Image + img, out = self.client.images.build(fileobj=io.BytesIO(dockerfile)) + ctr: Container = self.client.containers.create(image=img.id, detach=True, command="top", + volumes=["test_mount_preexisting_dir_vol:/workspace"]) + ctr.start() + ret, out = ctr.exec_run(["stat", "-c", "%u:%g", "/workspace"]) + self.assertTrue(out.startswith(b'1042:1043'), "assert correct uid/gid") -- cgit v1.2.3-54-g00ecf