1
0
mirror of https://github.com/moby/moby.git synced 2025-04-18 20:44:11 +03:00

container: Container.SetupWorkingDirectory: remove use of pkg/idtools

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2025-04-09 23:33:12 +02:00
parent 3e993060ee
commit 97688e8d06
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
4 changed files with 5 additions and 12 deletions

View File

@ -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)

View File

@ -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
}

View File

@ -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

View File

@ -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())
}