github.com/Heebron/moby@v0.0.0-20221111184709-6eab4f55faf7/pkg/parsers/kernel/kernel_unix.go (about) 1 //go:build linux || freebsd || openbsd 2 // +build linux freebsd openbsd 3 4 package kernel // import "github.com/docker/docker/pkg/parsers/kernel" 5 6 import ( 7 "github.com/sirupsen/logrus" 8 "golang.org/x/sys/unix" 9 ) 10 11 // GetKernelVersion gets the current kernel version. 12 func GetKernelVersion() (*VersionInfo, error) { 13 uts, err := uname() 14 if err != nil { 15 return nil, err 16 } 17 18 // Remove the \x00 from the release for Atoi to parse correctly 19 return ParseRelease(unix.ByteSliceToString(uts.Release[:])) 20 } 21 22 // CheckKernelVersion checks if current kernel is newer than (or equal to) 23 // the given version. 24 func CheckKernelVersion(k, major, minor int) bool { 25 if v, err := GetKernelVersion(); err != nil { 26 logrus.Warnf("error getting kernel version: %s", err) 27 } else { 28 if CompareKernelVersion(*v, VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 { 29 return false 30 } 31 } 32 return true 33 }