github.com/adityamillind98/moby@v23.0.0-rc.4+incompatible/daemon/archive_tarcopyoptions_unix.go (about)

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