| //go:build !windows | |
| package daemon // import "github.com/docker/docker/daemon" | |
| import ( | |
| "github.com/docker/docker/container" | |
| "github.com/docker/docker/pkg/archive" | |
| "github.com/docker/docker/pkg/idtools" | |
| ) | |
| func (daemon *Daemon) tarCopyOptions(container *container.Container, noOverwriteDirNonDir bool) (*archive.TarOptions, error) { | |
| if container.Config.User == "" { | |
| return daemon.defaultTarCopyOptions(noOverwriteDirNonDir), nil | |
| } | |
| user, err := idtools.LookupUser(container.Config.User) | |
| if err != nil { | |
| return nil, err | |
| } | |
| identity := idtools.Identity{UID: user.Uid, GID: user.Gid} | |
| return &archive.TarOptions{ | |
| NoOverwriteDirNonDir: noOverwriteDirNonDir, | |
| ChownOpts: &identity, | |
| }, nil | |
| } |