archive_tarcopyoptions_unix.go 717 B

123456789101112131415161718192021222324252627
  1. //go:build !windows
  2. package daemon // import "github.com/docker/docker/daemon"
  3. import (
  4. "github.com/docker/docker/container"
  5. "github.com/docker/docker/pkg/archive"
  6. "github.com/docker/docker/pkg/idtools"
  7. )
  8. func (daemon *Daemon) tarCopyOptions(container *container.Container, noOverwriteDirNonDir bool) (*archive.TarOptions, error) {
  9. if container.Config.User == "" {
  10. return daemon.defaultTarCopyOptions(noOverwriteDirNonDir), nil
  11. }
  12. user, err := idtools.LookupUser(container.Config.User)
  13. if err != nil {
  14. return nil, err
  15. }
  16. identity := idtools.Identity{UID: user.Uid, GID: user.Gid}
  17. return &archive.TarOptions{
  18. NoOverwriteDirNonDir: noOverwriteDirNonDir,
  19. ChownOpts: &identity,
  20. }, nil
  21. }