mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Add IsUserNamespaceInKernel() test environment condition
Signed-off-by: Eric Mountain <eric.mountain@datadoghq.com>
This commit is contained in:
parent
58a4c03fed
commit
b314e901d8
1 changed files with 21 additions and 0 deletions
|
@ -167,6 +167,27 @@ func (e *Execution) IsRootless() bool {
|
|||
return os.Getenv("DOCKER_ROOTLESS") != ""
|
||||
}
|
||||
|
||||
// IsUserNamespaceInKernel returns whether the kernel supports user namespaces
|
||||
func (e *Execution) IsUserNamespaceInKernel() bool {
|
||||
if _, err := os.Stat("/proc/self/uid_map"); os.IsNotExist(err) {
|
||||
/*
|
||||
* This kernel-provided file only exists if user namespaces are
|
||||
* supported
|
||||
*/
|
||||
return false
|
||||
}
|
||||
|
||||
// We need extra check on redhat based distributions
|
||||
if f, err := os.Open("/sys/module/user_namespace/parameters/enable"); err == nil {
|
||||
defer f.Close()
|
||||
b := make([]byte, 1)
|
||||
_, _ = f.Read(b)
|
||||
return string(b) != "N"
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// HasExistingImage checks whether there is an image with the given reference.
|
||||
// Note that this is done by filtering and then checking whether there were any
|
||||
// results -- so ambiguous references might result in false-positives.
|
||||
|
|
Loading…
Add table
Reference in a new issue