From 97688e8d062f946f774bc129554972d67f3ffd09 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 9 Apr 2025 23:33:12 +0200 Subject: [PATCH] container: Container.SetupWorkingDirectory: remove use of pkg/idtools Signed-off-by: Sebastiaan van Stijn --- container/container.go | 5 ++--- daemon/create_unix.go | 3 +-- daemon/oci_linux.go | 4 +--- daemon/workdir.go | 5 +---- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/container/container.go b/container/container.go index d8a41c5204..3fae1f09bb 100644 --- a/container/container.go +++ b/container/container.go @@ -30,7 +30,6 @@ import ( "github.com/docker/docker/image" libcontainerdtypes "github.com/docker/docker/libcontainerd/types" "github.com/docker/docker/oci" - "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/restartmanager" "github.com/docker/docker/volume" volumemounts "github.com/docker/docker/volume/mounts" @@ -321,7 +320,7 @@ func (container *Container) CommitInMemory(store *ViewDB) error { } // SetupWorkingDirectory sets up the container's working directory as set in container.Config.WorkingDir -func (container *Container) SetupWorkingDirectory(rootIdentity idtools.Identity) error { +func (container *Container) SetupWorkingDirectory(uid int, gid int) error { if container.Config.WorkingDir == "" { return nil } @@ -332,7 +331,7 @@ func (container *Container) SetupWorkingDirectory(rootIdentity idtools.Identity) return err } - if err := user.MkdirAllAndChown(pth, 0o755, rootIdentity.UID, rootIdentity.GID, user.WithOnlyNew); err != nil { + if err := user.MkdirAllAndChown(pth, 0o755, uid, gid, user.WithOnlyNew); err != nil { pthInfo, err2 := os.Stat(pth) if err2 == nil && pthInfo != nil && !pthInfo.IsDir() { return errors.Errorf("Cannot mkdir: %s is not a directory", container.Config.WorkingDir) diff --git a/daemon/create_unix.go b/daemon/create_unix.go index 7853a9a5c6..c12f5d7556 100644 --- a/daemon/create_unix.go +++ b/daemon/create_unix.go @@ -28,8 +28,7 @@ func (daemon *Daemon) createContainerOSSpecificSettings(ctx context.Context, con } defer daemon.Unmount(container) - uid, gid := daemon.idMapping.RootPair() - if err := container.SetupWorkingDirectory(idtools.Identity{UID: uid, GID: gid}); err != nil { + if err := container.SetupWorkingDirectory(daemon.idMapping.RootPair()); err != nil { return err } diff --git a/daemon/oci_linux.go b/daemon/oci_linux.go index 28c7543527..b8d10377f0 100644 --- a/daemon/oci_linux.go +++ b/daemon/oci_linux.go @@ -21,7 +21,6 @@ import ( "github.com/docker/docker/internal/rootless/specconv" "github.com/docker/docker/oci" "github.com/docker/docker/oci/caps" - "github.com/docker/docker/pkg/idtools" volumemounts "github.com/docker/docker/volume/mounts" "github.com/moby/sys/mount" "github.com/moby/sys/mountinfo" @@ -712,8 +711,7 @@ func withCommonOptions(daemon *Daemon, daemonCfg *dconfig.Config, c *container.C Path: c.BaseFS, Readonly: c.HostConfig.ReadonlyRootfs, } - uid, gid := daemon.idMapping.RootPair() - if err := c.SetupWorkingDirectory(idtools.Identity{UID: uid, GID: gid}); err != nil { + if err := c.SetupWorkingDirectory(daemon.idMapping.RootPair()); err != nil { return err } cwd := c.Config.WorkingDir diff --git a/daemon/workdir.go b/daemon/workdir.go index 0e4885f54f..4c0184998a 100644 --- a/daemon/workdir.go +++ b/daemon/workdir.go @@ -1,7 +1,5 @@ package daemon // import "github.com/docker/docker/daemon" -import "github.com/docker/docker/pkg/idtools" - // ContainerCreateWorkdir creates the working directory. This solves the // issue arising from https://github.com/docker/docker/issues/27545, // which was initially fixed by https://github.com/docker/docker/pull/27884. But that fix @@ -18,6 +16,5 @@ func (daemon *Daemon) ContainerCreateWorkdir(cID string) error { return err } defer daemon.Unmount(container) - uid, gid := daemon.idMapping.RootPair() - return container.SetupWorkingDirectory(idtools.Identity{UID: uid, GID: gid}) + return container.SetupWorkingDirectory(daemon.idMapping.RootPair()) }