//go:build !windows package main import ( "os" "strings" "github.com/docker/docker/pkg/sysinfo" ) var sysInfo *sysinfo.SysInfo func setupLocalInfo() { sysInfo = sysinfo.New() } func cpuCfsPeriod() bool { return testEnv.DaemonInfo.CPUCfsPeriod } func cpuCfsQuota() bool { return testEnv.DaemonInfo.CPUCfsQuota } func cpuShare() bool { return testEnv.DaemonInfo.CPUShares } func oomControl() bool { return testEnv.DaemonInfo.OomKillDisable } func pidsLimit() bool { return sysInfo.PidsLimit } func memoryLimitSupport() bool { return testEnv.DaemonInfo.MemoryLimit } func memoryReservationSupport() bool { return sysInfo.MemoryReservation } func swapMemorySupport() bool { return testEnv.DaemonInfo.SwapLimit } func memorySwappinessSupport() bool { return testEnv.IsLocalDaemon() && sysInfo.MemorySwappiness } func blkioWeight() bool { return testEnv.IsLocalDaemon() && sysInfo.BlkioWeight } func cgroupCpuset() bool { return testEnv.DaemonInfo.CPUSet } func seccompEnabled() bool { return sysInfo.Seccomp } func bridgeNfIptables() bool { return !sysInfo.BridgeNFCallIPTablesDisabled } func unprivilegedUsernsClone() bool { content, err := os.ReadFile("/proc/sys/kernel/unprivileged_userns_clone") return err != nil || !strings.Contains(string(content), "0") }