mirror of https://github.com/docker/cli.git
vendor: github.com/containerd/containerd v1.6.24
unfortunately, brings back hcsshim as dependency full diff: https://github.com/containerd/containerd/compare/v1.6.22...v1.6.24 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
497b13c661
commit
23f50a0665
|
@ -9,7 +9,7 @@ go 1.18
|
||||||
require (
|
require (
|
||||||
dario.cat/mergo v1.0.0
|
dario.cat/mergo v1.0.0
|
||||||
github.com/container-orchestrated-devices/container-device-interface v0.6.1
|
github.com/container-orchestrated-devices/container-device-interface v0.6.1
|
||||||
github.com/containerd/containerd v1.6.22
|
github.com/containerd/containerd v1.6.24
|
||||||
github.com/creack/pty v1.1.18
|
github.com/creack/pty v1.1.18
|
||||||
github.com/distribution/reference v0.0.0-20230830145923-e42074f83a9c
|
github.com/distribution/reference v0.0.0-20230830145923-e42074f83a9c
|
||||||
github.com/docker/distribution v2.8.2+incompatible
|
github.com/docker/distribution v2.8.2+incompatible
|
||||||
|
@ -50,6 +50,7 @@ require (
|
||||||
require (
|
require (
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
||||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||||
|
github.com/Microsoft/hcsshim v0.9.10 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
|
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
|
||||||
|
|
868
vendor.sum
868
vendor.sum
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Microsoft
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
50
vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
generated
vendored
Normal file
50
vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
generated
vendored
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
package osversion
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"golang.org/x/sys/windows"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OSVersion is a wrapper for Windows version information
|
||||||
|
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx
|
||||||
|
type OSVersion struct {
|
||||||
|
Version uint32
|
||||||
|
MajorVersion uint8
|
||||||
|
MinorVersion uint8
|
||||||
|
Build uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
osv OSVersion
|
||||||
|
once sync.Once
|
||||||
|
)
|
||||||
|
|
||||||
|
// Get gets the operating system version on Windows.
|
||||||
|
// The calling application must be manifested to get the correct version information.
|
||||||
|
func Get() OSVersion {
|
||||||
|
once.Do(func() {
|
||||||
|
var err error
|
||||||
|
osv = OSVersion{}
|
||||||
|
osv.Version, err = windows.GetVersion()
|
||||||
|
if err != nil {
|
||||||
|
// GetVersion never fails.
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
osv.MajorVersion = uint8(osv.Version & 0xFF)
|
||||||
|
osv.MinorVersion = uint8(osv.Version >> 8 & 0xFF)
|
||||||
|
osv.Build = uint16(osv.Version >> 16)
|
||||||
|
})
|
||||||
|
return osv
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build gets the build-number on Windows
|
||||||
|
// The calling application must be manifested to get the correct version information.
|
||||||
|
func Build() uint16 {
|
||||||
|
return Get().Build
|
||||||
|
}
|
||||||
|
|
||||||
|
func (osv OSVersion) ToString() string {
|
||||||
|
return fmt.Sprintf("%d.%d.%d", osv.MajorVersion, osv.MinorVersion, osv.Build)
|
||||||
|
}
|
35
vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
generated
vendored
Normal file
35
vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
package osversion
|
||||||
|
|
||||||
|
// List of stable ABI compliant ltsc releases
|
||||||
|
// Note: List must be sorted in ascending order
|
||||||
|
var compatLTSCReleases = []uint16{
|
||||||
|
V21H2Server,
|
||||||
|
}
|
||||||
|
|
||||||
|
// CheckHostAndContainerCompat checks if given host and container
|
||||||
|
// OS versions are compatible.
|
||||||
|
// It includes support for stable ABI compliant versions as well.
|
||||||
|
// Every release after WS 2022 will support the previous ltsc
|
||||||
|
// container image. Stable ABI is in preview mode for windows 11 client.
|
||||||
|
// Refer: https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-10#windows-server-host-os-compatibility
|
||||||
|
func CheckHostAndContainerCompat(host, ctr OSVersion) bool {
|
||||||
|
// check major minor versions of host and guest
|
||||||
|
if host.MajorVersion != ctr.MajorVersion ||
|
||||||
|
host.MinorVersion != ctr.MinorVersion {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// If host is < WS 2022, exact version match is required
|
||||||
|
if host.Build < V21H2Server {
|
||||||
|
return host.Build == ctr.Build
|
||||||
|
}
|
||||||
|
|
||||||
|
var supportedLtscRelease uint16
|
||||||
|
for i := len(compatLTSCReleases) - 1; i >= 0; i-- {
|
||||||
|
if host.Build >= compatLTSCReleases[i] {
|
||||||
|
supportedLtscRelease = compatLTSCReleases[i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ctr.Build >= supportedLtscRelease && ctr.Build <= host.Build
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
package osversion
|
||||||
|
|
||||||
|
const (
|
||||||
|
// RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server
|
||||||
|
// 2016 (ltsc2016) and Windows 10 (Anniversary Update).
|
||||||
|
RS1 = 14393
|
||||||
|
|
||||||
|
// RS2 (version 1703, codename "Redstone 2") was a client-only update, and
|
||||||
|
// corresponds to Windows 10 (Creators Update).
|
||||||
|
RS2 = 15063
|
||||||
|
|
||||||
|
// RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server
|
||||||
|
// 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update).
|
||||||
|
RS3 = 16299
|
||||||
|
|
||||||
|
// RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server
|
||||||
|
// 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update).
|
||||||
|
RS4 = 17134
|
||||||
|
|
||||||
|
// RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server
|
||||||
|
// 2019 (ltsc2019), and Windows 10 (October 2018 Update).
|
||||||
|
RS5 = 17763
|
||||||
|
|
||||||
|
// V19H1 (version 1903) corresponds to Windows Server 1903 (semi-annual
|
||||||
|
// channel).
|
||||||
|
V19H1 = 18362
|
||||||
|
|
||||||
|
// V19H2 (version 1909) corresponds to Windows Server 1909 (semi-annual
|
||||||
|
// channel).
|
||||||
|
V19H2 = 18363
|
||||||
|
|
||||||
|
// V20H1 (version 2004) corresponds to Windows Server 2004 (semi-annual
|
||||||
|
// channel).
|
||||||
|
V20H1 = 19041
|
||||||
|
|
||||||
|
// V20H2 corresponds to Windows Server 20H2 (semi-annual channel).
|
||||||
|
V20H2 = 19042
|
||||||
|
|
||||||
|
// V21H1 corresponds to Windows Server 21H1 (semi-annual channel).
|
||||||
|
V21H1 = 19043
|
||||||
|
|
||||||
|
// V21H2Win10 corresponds to Windows 10 (November 2021 Update).
|
||||||
|
V21H2Win10 = 19044
|
||||||
|
|
||||||
|
// V21H2Server corresponds to Windows Server 2022 (ltsc2022).
|
||||||
|
V21H2Server = 20348
|
||||||
|
// LTSC2022 (Windows Server 2022) is an alias for [V21H2Server]
|
||||||
|
LTSC2022 = V21H2Server
|
||||||
|
|
||||||
|
// V21H2Win11 corresponds to Windows 11 (original release).
|
||||||
|
V21H2Win11 = 22000
|
||||||
|
|
||||||
|
// V22H2Win10 corresponds to Windows 10 (2022 Update).
|
||||||
|
V22H2Win10 = 19045
|
||||||
|
|
||||||
|
// V22H2Win11 corresponds to Windows 11 (2022 Update).
|
||||||
|
V22H2Win11 = 22621
|
||||||
|
)
|
|
@ -14,6 +14,27 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Package log provides types and functions related to logging, passing
|
||||||
|
// loggers through a context, and attaching context to the logger.
|
||||||
|
//
|
||||||
|
// # Transitional types
|
||||||
|
//
|
||||||
|
// This package contains various types that are aliases for types in [logrus].
|
||||||
|
// These aliases are intended for transitioning away from hard-coding logrus
|
||||||
|
// as logging implementation. Consumers of this package are encouraged to use
|
||||||
|
// the type-aliases from this package instead of directly using their logrus
|
||||||
|
// equivalent.
|
||||||
|
//
|
||||||
|
// The intent is to replace these aliases with locally defined types and
|
||||||
|
// interfaces once all consumers are no longer directly importing logrus
|
||||||
|
// types.
|
||||||
|
//
|
||||||
|
// IMPORTANT: due to the transitional purpose of this package, it is not
|
||||||
|
// guaranteed for the full logrus API to be provided in the future. As
|
||||||
|
// outlined, these aliases are provided as a step to transition away from
|
||||||
|
// a specific implementation which, as a result, exposes the full logrus API.
|
||||||
|
// While no decisions have been made on the ultimate design and interface
|
||||||
|
// provided by this package, we do not expect carrying "less common" features.
|
||||||
package log
|
package log
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -23,98 +44,139 @@ import (
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
// G is a shorthand for [GetLogger].
|
||||||
// G is an alias for GetLogger.
|
//
|
||||||
//
|
// We may want to define this locally to a package to get package tagged log
|
||||||
// We may want to define this locally to a package to get package tagged log
|
// messages.
|
||||||
// messages.
|
var G = GetLogger
|
||||||
G = GetLogger
|
|
||||||
|
|
||||||
// L is an alias for the standard logger.
|
// L is an alias for the standard logger.
|
||||||
L = logrus.NewEntry(logrus.StandardLogger())
|
var L = &Entry{
|
||||||
)
|
Logger: logrus.StandardLogger(),
|
||||||
|
// Default is three fields plus a little extra room.
|
||||||
|
Data: make(Fields, 6),
|
||||||
|
}
|
||||||
|
|
||||||
type (
|
type loggerKey struct{}
|
||||||
loggerKey struct{}
|
|
||||||
|
|
||||||
// Fields type to pass to `WithFields`, alias from `logrus`.
|
// Fields type to pass to "WithFields".
|
||||||
Fields = logrus.Fields
|
type Fields = map[string]any
|
||||||
|
|
||||||
// Level is a logging level
|
// Entry is a logging entry. It contains all the fields passed with
|
||||||
Level = logrus.Level
|
// [Entry.WithFields]. It's finally logged when Trace, Debug, Info, Warn,
|
||||||
)
|
// Error, Fatal or Panic is called on it. These objects can be reused and
|
||||||
|
// passed around as much as you wish to avoid field duplication.
|
||||||
|
//
|
||||||
|
// Entry is a transitional type, and currently an alias for [logrus.Entry].
|
||||||
|
type Entry = logrus.Entry
|
||||||
|
|
||||||
|
// RFC3339NanoFixed is [time.RFC3339Nano] with nanoseconds padded using
|
||||||
|
// zeros to ensure the formatted time is always the same number of
|
||||||
|
// characters.
|
||||||
|
const RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00"
|
||||||
|
|
||||||
|
// Level is a logging level.
|
||||||
|
type Level = logrus.Level
|
||||||
|
|
||||||
|
// Supported log levels.
|
||||||
const (
|
const (
|
||||||
// RFC3339NanoFixed is time.RFC3339Nano with nanoseconds padded using zeros to
|
// TraceLevel level. Designates finer-grained informational events
|
||||||
// ensure the formatted time is always the same number of characters.
|
// than [DebugLevel].
|
||||||
RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00"
|
TraceLevel Level = logrus.TraceLevel
|
||||||
|
|
||||||
// TextFormat represents the text logging format
|
// DebugLevel level. Usually only enabled when debugging. Very verbose
|
||||||
TextFormat = "text"
|
// logging.
|
||||||
|
DebugLevel Level = logrus.DebugLevel
|
||||||
|
|
||||||
// JSONFormat represents the JSON logging format
|
// InfoLevel level. General operational entries about what's going on
|
||||||
JSONFormat = "json"
|
// inside the application.
|
||||||
|
InfoLevel Level = logrus.InfoLevel
|
||||||
|
|
||||||
// TraceLevel level.
|
// WarnLevel level. Non-critical entries that deserve eyes.
|
||||||
TraceLevel = logrus.TraceLevel
|
WarnLevel Level = logrus.WarnLevel
|
||||||
|
|
||||||
// DebugLevel level.
|
// ErrorLevel level. Logs errors that should definitely be noted.
|
||||||
DebugLevel = logrus.DebugLevel
|
// Commonly used for hooks to send errors to an error tracking service.
|
||||||
|
ErrorLevel Level = logrus.ErrorLevel
|
||||||
|
|
||||||
// InfoLevel level.
|
// FatalLevel level. Logs and then calls "logger.Exit(1)". It exits
|
||||||
InfoLevel = logrus.InfoLevel
|
// even if the logging level is set to Panic.
|
||||||
|
FatalLevel Level = logrus.FatalLevel
|
||||||
|
|
||||||
|
// PanicLevel level. This is the highest level of severity. Logs and
|
||||||
|
// then calls panic with the message passed to Debug, Info, ...
|
||||||
|
PanicLevel Level = logrus.PanicLevel
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetLevel sets log level globally.
|
// SetLevel sets log level globally. It returns an error if the given
|
||||||
|
// level is not supported.
|
||||||
|
//
|
||||||
|
// level can be one of:
|
||||||
|
//
|
||||||
|
// - "trace" ([TraceLevel])
|
||||||
|
// - "debug" ([DebugLevel])
|
||||||
|
// - "info" ([InfoLevel])
|
||||||
|
// - "warn" ([WarnLevel])
|
||||||
|
// - "error" ([ErrorLevel])
|
||||||
|
// - "fatal" ([FatalLevel])
|
||||||
|
// - "panic" ([PanicLevel])
|
||||||
func SetLevel(level string) error {
|
func SetLevel(level string) error {
|
||||||
lvl, err := logrus.ParseLevel(level)
|
lvl, err := logrus.ParseLevel(level)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.SetLevel(lvl)
|
L.Logger.SetLevel(lvl)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLevel returns the current log level.
|
// GetLevel returns the current log level.
|
||||||
func GetLevel() Level {
|
func GetLevel() Level {
|
||||||
return logrus.GetLevel()
|
return L.Logger.GetLevel()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetFormat sets log output format
|
// OutputFormat specifies a log output format.
|
||||||
func SetFormat(format string) error {
|
type OutputFormat string
|
||||||
|
|
||||||
|
// Supported log output formats.
|
||||||
|
const (
|
||||||
|
// TextFormat represents the text logging format.
|
||||||
|
TextFormat OutputFormat = "text"
|
||||||
|
|
||||||
|
// JSONFormat represents the JSON logging format.
|
||||||
|
JSONFormat OutputFormat = "json"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SetFormat sets the log output format ([TextFormat] or [JSONFormat]).
|
||||||
|
func SetFormat(format OutputFormat) error {
|
||||||
switch format {
|
switch format {
|
||||||
case TextFormat:
|
case TextFormat:
|
||||||
logrus.SetFormatter(&logrus.TextFormatter{
|
L.Logger.SetFormatter(&logrus.TextFormatter{
|
||||||
TimestampFormat: RFC3339NanoFixed,
|
TimestampFormat: RFC3339NanoFixed,
|
||||||
FullTimestamp: true,
|
FullTimestamp: true,
|
||||||
})
|
})
|
||||||
|
return nil
|
||||||
case JSONFormat:
|
case JSONFormat:
|
||||||
logrus.SetFormatter(&logrus.JSONFormatter{
|
L.Logger.SetFormatter(&logrus.JSONFormatter{
|
||||||
TimestampFormat: RFC3339NanoFixed,
|
TimestampFormat: RFC3339NanoFixed,
|
||||||
})
|
})
|
||||||
|
return nil
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("unknown log format: %s", format)
|
return fmt.Errorf("unknown log format: %s", format)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithLogger returns a new context with the provided logger. Use in
|
// WithLogger returns a new context with the provided logger. Use in
|
||||||
// combination with logger.WithField(s) for great effect.
|
// combination with logger.WithField(s) for great effect.
|
||||||
func WithLogger(ctx context.Context, logger *logrus.Entry) context.Context {
|
func WithLogger(ctx context.Context, logger *Entry) context.Context {
|
||||||
e := logger.WithContext(ctx)
|
return context.WithValue(ctx, loggerKey{}, logger.WithContext(ctx))
|
||||||
return context.WithValue(ctx, loggerKey{}, e)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLogger retrieves the current logger from the context. If no logger is
|
// GetLogger retrieves the current logger from the context. If no logger is
|
||||||
// available, the default logger is returned.
|
// available, the default logger is returned.
|
||||||
func GetLogger(ctx context.Context) *logrus.Entry {
|
func GetLogger(ctx context.Context) *Entry {
|
||||||
logger := ctx.Value(loggerKey{})
|
if logger := ctx.Value(loggerKey{}); logger != nil {
|
||||||
|
return logger.(*Entry)
|
||||||
if logger == nil {
|
|
||||||
return L.WithContext(ctx)
|
|
||||||
}
|
}
|
||||||
|
return L.WithContext(ctx)
|
||||||
return logger.(*logrus.Entry)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/Microsoft/hcsshim/osversion"
|
||||||
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
specs "github.com/opencontainers/image-spec/specs-go/v1"
|
specs "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
|
@ -50,14 +51,35 @@ func (m matchComparer) Match(p specs.Platform) bool {
|
||||||
match := m.defaults.Match(p)
|
match := m.defaults.Match(p)
|
||||||
|
|
||||||
if match && p.OS == "windows" {
|
if match && p.OS == "windows" {
|
||||||
if strings.HasPrefix(p.OSVersion, m.osVersionPrefix) {
|
// HPC containers do not have OS version filled
|
||||||
|
if p.OSVersion == "" {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return p.OSVersion == ""
|
|
||||||
|
hostOsVersion := getOSVersion(m.osVersionPrefix)
|
||||||
|
ctrOsVersion := getOSVersion(p.OSVersion)
|
||||||
|
return osversion.CheckHostAndContainerCompat(hostOsVersion, ctrOsVersion)
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getOSVersion(osVersionPrefix string) osversion.OSVersion {
|
||||||
|
parts := strings.Split(osVersionPrefix, ".")
|
||||||
|
if len(parts) < 3 {
|
||||||
|
return osversion.OSVersion{}
|
||||||
|
}
|
||||||
|
|
||||||
|
majorVersion, _ := strconv.Atoi(parts[0])
|
||||||
|
minorVersion, _ := strconv.Atoi(parts[1])
|
||||||
|
buildNumber, _ := strconv.Atoi(parts[2])
|
||||||
|
|
||||||
|
return osversion.OSVersion{
|
||||||
|
MajorVersion: uint8(majorVersion),
|
||||||
|
MinorVersion: uint8(minorVersion),
|
||||||
|
Build: uint16(buildNumber),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Less sorts matched platforms in front of other platforms.
|
// Less sorts matched platforms in front of other platforms.
|
||||||
// For matched platforms, it puts platforms with larger revision
|
// For matched platforms, it puts platforms with larger revision
|
||||||
// number in front.
|
// number in front.
|
||||||
|
|
|
@ -12,6 +12,9 @@ github.com/Microsoft/go-winio/internal/fs
|
||||||
github.com/Microsoft/go-winio/internal/socket
|
github.com/Microsoft/go-winio/internal/socket
|
||||||
github.com/Microsoft/go-winio/internal/stringbuffer
|
github.com/Microsoft/go-winio/internal/stringbuffer
|
||||||
github.com/Microsoft/go-winio/pkg/guid
|
github.com/Microsoft/go-winio/pkg/guid
|
||||||
|
# github.com/Microsoft/hcsshim v0.9.10
|
||||||
|
## explicit; go 1.13
|
||||||
|
github.com/Microsoft/hcsshim/osversion
|
||||||
# github.com/beorn7/perks v1.0.1
|
# github.com/beorn7/perks v1.0.1
|
||||||
## explicit; go 1.11
|
## explicit; go 1.11
|
||||||
github.com/beorn7/perks/quantile
|
github.com/beorn7/perks/quantile
|
||||||
|
@ -21,8 +24,8 @@ github.com/cespare/xxhash/v2
|
||||||
# github.com/container-orchestrated-devices/container-device-interface v0.6.1
|
# github.com/container-orchestrated-devices/container-device-interface v0.6.1
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
github.com/container-orchestrated-devices/container-device-interface/pkg/parser
|
github.com/container-orchestrated-devices/container-device-interface/pkg/parser
|
||||||
# github.com/containerd/containerd v1.6.22
|
# github.com/containerd/containerd v1.6.24
|
||||||
## explicit; go 1.18
|
## explicit; go 1.19
|
||||||
github.com/containerd/containerd/errdefs
|
github.com/containerd/containerd/errdefs
|
||||||
github.com/containerd/containerd/log
|
github.com/containerd/containerd/log
|
||||||
github.com/containerd/containerd/pkg/userns
|
github.com/containerd/containerd/pkg/userns
|
||||||
|
|
Loading…
Reference in New Issue