mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	Merge pull request #2982 from crazy-max/revert-docker-28-vendor
Revert "vendor: docker, docker/cli v28.0.0-rc.1"
This commit is contained in:
		@@ -835,7 +835,7 @@ func remoteDigestWithMoby(ctx context.Context, d *driver.DriverHandle, name stri
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
	img, err := api.ImageInspect(ctx, name)
 | 
			
		||||
	img, _, err := api.ImageInspectWithRaw(ctx, name)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ import (
 | 
			
		||||
	"github.com/docker/cli/cli/command"
 | 
			
		||||
	dockeropts "github.com/docker/cli/opts"
 | 
			
		||||
	"github.com/docker/docker/api/types/versions"
 | 
			
		||||
	"github.com/docker/docker/pkg/atomicwriter"
 | 
			
		||||
	"github.com/docker/docker/pkg/ioutils"
 | 
			
		||||
	"github.com/moby/buildkit/client"
 | 
			
		||||
	"github.com/moby/buildkit/exporter/containerimage/exptypes"
 | 
			
		||||
	"github.com/moby/buildkit/frontend/subrequests"
 | 
			
		||||
@@ -745,7 +745,7 @@ func writeMetadataFile(filename string, dt interface{}) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return atomicwriter.WriteFile(filename, b, 0644)
 | 
			
		||||
	return ioutils.AtomicWriteFile(filename, b, 0644)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func decodeExporterResponse(exporterResponse map[string]string) map[string]interface{} {
 | 
			
		||||
 
 | 
			
		||||
@@ -105,9 +105,8 @@ func (d *Driver) create(ctx context.Context, l progress.SubLogger) error {
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		// image pulling failed, check if it exists in local image store.
 | 
			
		||||
		// if not, return pulling error. otherwise log it.
 | 
			
		||||
		_, errInspect := d.DockerAPI.ImageInspect(ctx, imageName)
 | 
			
		||||
		found := errInspect == nil
 | 
			
		||||
		if !found {
 | 
			
		||||
		_, _, errInspect := d.DockerAPI.ImageInspectWithRaw(ctx, imageName)
 | 
			
		||||
		if errInspect != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		l.Wrap("pulling failed, using local image "+imageName, func() error { return nil })
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								go.mod
									
									
									
									
									
								
							@@ -17,9 +17,9 @@ require (
 | 
			
		||||
	github.com/creack/pty v1.1.24
 | 
			
		||||
	github.com/davecgh/go-spew v1.1.1
 | 
			
		||||
	github.com/distribution/reference v0.6.0
 | 
			
		||||
	github.com/docker/cli v28.0.0-rc.1+incompatible
 | 
			
		||||
	github.com/docker/cli v27.5.1+incompatible
 | 
			
		||||
	github.com/docker/cli-docs-tool v0.9.0
 | 
			
		||||
	github.com/docker/docker v28.0.0-rc.1+incompatible
 | 
			
		||||
	github.com/docker/docker v27.5.1+incompatible
 | 
			
		||||
	github.com/docker/go-units v0.5.0
 | 
			
		||||
	github.com/gofrs/flock v0.12.1
 | 
			
		||||
	github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
 | 
			
		||||
@@ -173,7 +173,7 @@ require (
 | 
			
		||||
	golang.org/x/oauth2 v0.23.0 // indirect
 | 
			
		||||
	golang.org/x/time v0.6.0 // indirect
 | 
			
		||||
	golang.org/x/tools v0.27.0 // indirect
 | 
			
		||||
	google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect
 | 
			
		||||
	google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect
 | 
			
		||||
	gopkg.in/inf.v0 v0.9.1 // indirect
 | 
			
		||||
	gopkg.in/yaml.v2 v2.4.0 // indirect
 | 
			
		||||
	k8s.io/klog/v2 v2.130.1 // indirect
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								go.sum
									
									
									
									
									
								
							@@ -122,15 +122,15 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 | 
			
		||||
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
 | 
			
		||||
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
 | 
			
		||||
github.com/docker/cli v28.0.0-rc.1+incompatible h1:4Xkn+JKnvVqDfyL/pZCWaPM9jzPtAJvNu7qKBkotv3I=
 | 
			
		||||
github.com/docker/cli v28.0.0-rc.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 | 
			
		||||
github.com/docker/cli v27.5.1+incompatible h1:JB9cieUT9YNiMITtIsguaN55PLOHhBSz3LKVc6cqWaY=
 | 
			
		||||
github.com/docker/cli v27.5.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 | 
			
		||||
github.com/docker/cli-docs-tool v0.9.0 h1:CVwQbE+ZziwlPqrJ7LRyUF6GvCA+6gj7MTCsayaK9t0=
 | 
			
		||||
github.com/docker/cli-docs-tool v0.9.0/go.mod h1:ClrwlNW+UioiRyH9GiAOe1o3J/TsY3Tr1ipoypjAUtc=
 | 
			
		||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 | 
			
		||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
 | 
			
		||||
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 | 
			
		||||
github.com/docker/docker v28.0.0-rc.1+incompatible h1:xUbdsVxJIFvyZ+958MzyyIT7VuHO4Ecao9hKhl7kGUc=
 | 
			
		||||
github.com/docker/docker v28.0.0-rc.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 | 
			
		||||
github.com/docker/docker v27.5.1+incompatible h1:4PYU5dnBYqRQi0294d1FBECqT9ECWeQAIfE8q4YnPY8=
 | 
			
		||||
github.com/docker/docker v27.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 | 
			
		||||
github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
 | 
			
		||||
github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
 | 
			
		||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
 | 
			
		||||
@@ -572,8 +572,8 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1:2oV8dfuIkM1Ti7DwXc0BJfnwr9csz4TDXI9EmiI+Rbw=
 | 
			
		||||
google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc=
 | 
			
		||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U=
 | 
			
		||||
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4=
 | 
			
		||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI=
 | 
			
		||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
 | 
			
		||||
google.golang.org/grpc v1.0.5/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ import (
 | 
			
		||||
	"sync"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/cli/cli/command"
 | 
			
		||||
	"github.com/docker/docker/pkg/atomicwriter"
 | 
			
		||||
	"github.com/docker/docker/pkg/ioutils"
 | 
			
		||||
	"github.com/moby/buildkit/cmd/buildkitd/config"
 | 
			
		||||
	"github.com/pelletier/go-toml"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
@@ -106,7 +106,7 @@ func (c *Config) MkdirAll(dir string, perm os.FileMode) error {
 | 
			
		||||
// AtomicWriteFile writes data to a file within the config dir atomically
 | 
			
		||||
func (c *Config) AtomicWriteFile(filename string, data []byte, perm os.FileMode) error {
 | 
			
		||||
	f := filepath.Join(c.dir, filename)
 | 
			
		||||
	if err := atomicwriter.WriteFile(f, data, perm); err != nil {
 | 
			
		||||
	if err := ioutils.AtomicWriteFile(f, data, perm); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if c.chowner == nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/buildx/util/progress"
 | 
			
		||||
	"github.com/docker/cli/cli/command"
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
	dockerclient "github.com/docker/docker/client"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -53,7 +52,7 @@ func (c *Client) LoadImage(ctx context.Context, name string, status progress.Wri
 | 
			
		||||
				w.mu.Unlock()
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			resp, err := dapi.ImageLoad(ctx, pr, image.LoadOptions{})
 | 
			
		||||
			resp, err := dapi.ImageLoad(ctx, pr, false)
 | 
			
		||||
			defer close(done)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				handleErr(err)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/cli/cli-plugins/hooks/printer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/cli/cli-plugins/hooks/printer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,8 +11,8 @@ func PrintNextSteps(out io.Writer, messages []string) {
 | 
			
		||||
	if len(messages) == 0 {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	_, _ = fmt.Fprintln(out, aec.Bold.Apply("\nWhat's next:"))
 | 
			
		||||
	fmt.Fprintln(out, aec.Bold.Apply("\nWhat's next:"))
 | 
			
		||||
	for _, n := range messages {
 | 
			
		||||
		_, _ = fmt.Fprintln(out, "   ", n)
 | 
			
		||||
		_, _ = fmt.Fprintf(out, "    %s\n", n)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/docker/cli/cli-plugins/manager/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/docker/cli/cli-plugins/manager/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -52,6 +52,7 @@ func AddPluginCommandStubs(dockerCli command.Cli, rootCmd *cobra.Command) (err e
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		for _, p := range plugins {
 | 
			
		||||
			p := p
 | 
			
		||||
			vendor := p.Vendor
 | 
			
		||||
			if vendor == "" {
 | 
			
		||||
				vendor = "unknown"
 | 
			
		||||
@@ -81,7 +82,7 @@ func AddPluginCommandStubs(dockerCli command.Cli, rootCmd *cobra.Command) (err e
 | 
			
		||||
						cmd.HelpFunc()(rootCmd, args)
 | 
			
		||||
						return nil
 | 
			
		||||
					}
 | 
			
		||||
					return fmt.Errorf("docker: unknown command: docker %s\n\nRun 'docker --help' for more information", cmd.Name())
 | 
			
		||||
					return fmt.Errorf("docker: '%s' is not a docker command.\nSee 'docker --help'", cmd.Name())
 | 
			
		||||
				},
 | 
			
		||||
				ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
 | 
			
		||||
					// Delegate completion to plugin
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/github.com/docker/cli/cli-plugins/plugin/plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/docker/cli/cli-plugins/plugin/plugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,7 +3,6 @@ package plugin
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -35,7 +34,7 @@ func RunPlugin(dockerCli *command.DockerCli, plugin *cobra.Command, meta manager
 | 
			
		||||
 | 
			
		||||
	var persistentPreRunOnce sync.Once
 | 
			
		||||
	PersistentPreRunE = func(cmd *cobra.Command, _ []string) error {
 | 
			
		||||
		var retErr error
 | 
			
		||||
		var err error
 | 
			
		||||
		persistentPreRunOnce.Do(func() {
 | 
			
		||||
			ctx, cancel := context.WithCancel(cmd.Context())
 | 
			
		||||
			cmd.SetContext(ctx)
 | 
			
		||||
@@ -47,7 +46,7 @@ func RunPlugin(dockerCli *command.DockerCli, plugin *cobra.Command, meta manager
 | 
			
		||||
				opts = append(opts, withPluginClientConn(plugin.Name()))
 | 
			
		||||
			}
 | 
			
		||||
			opts = append(opts, command.WithEnableGlobalMeterProvider(), command.WithEnableGlobalTracerProvider())
 | 
			
		||||
			retErr = tcmd.Initialize(opts...)
 | 
			
		||||
			err = tcmd.Initialize(opts...)
 | 
			
		||||
			ogRunE := cmd.RunE
 | 
			
		||||
			if ogRunE == nil {
 | 
			
		||||
				ogRun := cmd.Run
 | 
			
		||||
@@ -67,7 +66,7 @@ func RunPlugin(dockerCli *command.DockerCli, plugin *cobra.Command, meta manager
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
		return retErr
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cmd, args, err := tcmd.HandleGlobalFlags()
 | 
			
		||||
@@ -93,17 +92,18 @@ func Run(makeCmd func(command.Cli) *cobra.Command, meta manager.Metadata) {
 | 
			
		||||
	plugin := makeCmd(dockerCli)
 | 
			
		||||
 | 
			
		||||
	if err := RunPlugin(dockerCli, plugin, meta); err != nil {
 | 
			
		||||
		var stErr cli.StatusError
 | 
			
		||||
		if errors.As(err, &stErr) {
 | 
			
		||||
		if sterr, ok := err.(cli.StatusError); ok {
 | 
			
		||||
			if sterr.Status != "" {
 | 
			
		||||
				fmt.Fprintln(dockerCli.Err(), sterr.Status)
 | 
			
		||||
			}
 | 
			
		||||
			// StatusError should only be used for errors, and all errors should
 | 
			
		||||
			// have a non-zero exit status, so never exit with 0
 | 
			
		||||
			if stErr.StatusCode == 0 { // FIXME(thaJeztah): this should never be used with a zero status-code. Check if we do this anywhere.
 | 
			
		||||
				stErr.StatusCode = 1
 | 
			
		||||
			if sterr.StatusCode == 0 {
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
			_, _ = fmt.Fprintln(dockerCli.Err(), stErr)
 | 
			
		||||
			os.Exit(stErr.StatusCode)
 | 
			
		||||
			os.Exit(sterr.StatusCode)
 | 
			
		||||
		}
 | 
			
		||||
		_, _ = fmt.Fprintln(dockerCli.Err(), err)
 | 
			
		||||
		fmt.Fprintln(dockerCli.Err(), err)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -158,7 +158,7 @@ func newPluginCommand(dockerCli *command.DockerCli, plugin *cobra.Command, meta
 | 
			
		||||
		CompletionOptions: cobra.CompletionOptions{
 | 
			
		||||
			DisableDefaultCmd:   false,
 | 
			
		||||
			HiddenDefaultCmd:    true,
 | 
			
		||||
			DisableDescriptions: os.Getenv("DOCKER_CLI_DISABLE_COMPLETION_DESCRIPTION") != "",
 | 
			
		||||
			DisableDescriptions: true,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	opts, _ := cli.SetupPluginRootCommand(cmd)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/docker/cli/cli/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/docker/cli/cli/cobra.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -92,8 +92,12 @@ func FlagErrorFunc(cmd *cobra.Command, err error) error {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	usage := ""
 | 
			
		||||
	if cmd.HasSubCommands() {
 | 
			
		||||
		usage = "\n\n" + cmd.UsageString()
 | 
			
		||||
	}
 | 
			
		||||
	return StatusError{
 | 
			
		||||
		Status:     fmt.Sprintf("%s\n\nUsage:  %s\n\nRun '%s --help' for more information", err, cmd.UseLine(), cmd.CommandPath()),
 | 
			
		||||
		Status:     fmt.Sprintf("%s\nSee '%s --help'.%s", err, cmd.CommandPath(), usage),
 | 
			
		||||
		StatusCode: 125,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/docker/cli/cli/command/cli.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/docker/cli/cli/command/cli.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -114,7 +114,7 @@ func (cli *DockerCli) CurrentVersion() string {
 | 
			
		||||
// Client returns the APIClient
 | 
			
		||||
func (cli *DockerCli) Client() client.APIClient {
 | 
			
		||||
	if err := cli.initialize(); err != nil {
 | 
			
		||||
		_, _ = fmt.Fprintln(cli.Err(), "Failed to initialize:", err)
 | 
			
		||||
		_, _ = fmt.Fprintf(cli.Err(), "Failed to initialize: %s\n", err)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
	return cli.client
 | 
			
		||||
@@ -272,7 +272,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption)
 | 
			
		||||
		debug.Enable()
 | 
			
		||||
	}
 | 
			
		||||
	if opts.Context != "" && len(opts.Hosts) > 0 {
 | 
			
		||||
		return errors.New("conflicting options: cannot specify both --host and --context")
 | 
			
		||||
		return errors.New("conflicting options: either specify --host or --context, not both")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cli.options = opts
 | 
			
		||||
@@ -299,7 +299,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption)
 | 
			
		||||
// NewAPIClientFromFlags creates a new APIClient from command line flags
 | 
			
		||||
func NewAPIClientFromFlags(opts *cliflags.ClientOptions, configFile *configfile.ConfigFile) (client.APIClient, error) {
 | 
			
		||||
	if opts.Context != "" && len(opts.Hosts) > 0 {
 | 
			
		||||
		return nil, errors.New("conflicting options: cannot specify both --host and --context")
 | 
			
		||||
		return nil, errors.New("conflicting options: either specify --host or --context, not both")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	storeConfig := DefaultContextStoreConfig()
 | 
			
		||||
@@ -475,7 +475,7 @@ func (cli *DockerCli) DockerEndpoint() docker.Endpoint {
 | 
			
		||||
	if err := cli.initialize(); err != nil {
 | 
			
		||||
		// Note that we're not terminating here, as this function may be used
 | 
			
		||||
		// in cases where we're able to continue.
 | 
			
		||||
		_, _ = fmt.Fprintln(cli.Err(), cli.initErr)
 | 
			
		||||
		_, _ = fmt.Fprintf(cli.Err(), "%v\n", cli.initErr)
 | 
			
		||||
	}
 | 
			
		||||
	return cli.dockerEndpoint
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								vendor/github.com/docker/cli/cli/command/formatter/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/docker/cli/cli/command/formatter/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/distribution/reference"
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/pkg/stringid"
 | 
			
		||||
	"github.com/docker/go-units"
 | 
			
		||||
)
 | 
			
		||||
@@ -67,10 +67,10 @@ ports: {{- pad .Ports 1 0}}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerWrite renders the context for a list of containers
 | 
			
		||||
func ContainerWrite(ctx Context, containers []container.Summary) error {
 | 
			
		||||
func ContainerWrite(ctx Context, containers []types.Container) error {
 | 
			
		||||
	render := func(format func(subContext SubContext) error) error {
 | 
			
		||||
		for _, ctr := range containers {
 | 
			
		||||
			err := format(&ContainerContext{trunc: ctx.Trunc, c: ctr})
 | 
			
		||||
		for _, container := range containers {
 | 
			
		||||
			err := format(&ContainerContext{trunc: ctx.Trunc, c: container})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
@@ -84,7 +84,7 @@ func ContainerWrite(ctx Context, containers []container.Summary) error {
 | 
			
		||||
type ContainerContext struct {
 | 
			
		||||
	HeaderContext
 | 
			
		||||
	trunc bool
 | 
			
		||||
	c     container.Summary
 | 
			
		||||
	c     types.Container
 | 
			
		||||
 | 
			
		||||
	// FieldsUsed is used in the pre-processing step to detect which fields are
 | 
			
		||||
	// used in the template. It's currently only used to detect use of the .Size
 | 
			
		||||
@@ -193,9 +193,7 @@ func (c *ContainerContext) Command() string {
 | 
			
		||||
	return strconv.Quote(command)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreatedAt returns the formatted string representing the container's creation date/time.
 | 
			
		||||
// The format may include nanoseconds if present.
 | 
			
		||||
// e.g. "2006-01-02 15:04:05.999999999 -0700 MST" or "2006-01-02 15:04:05 -0700 MST"
 | 
			
		||||
// CreatedAt returns the "Created" date/time of the container as a unix timestamp.
 | 
			
		||||
func (c *ContainerContext) CreatedAt() string {
 | 
			
		||||
	return time.Unix(c.c.Created, 0).String()
 | 
			
		||||
}
 | 
			
		||||
@@ -316,7 +314,7 @@ func (c *ContainerContext) Networks() string {
 | 
			
		||||
// DisplayablePorts returns formatted string representing open ports of container
 | 
			
		||||
// e.g. "0.0.0.0:80->9090/tcp, 9988/tcp"
 | 
			
		||||
// it's used by command 'docker ps'
 | 
			
		||||
func DisplayablePorts(ports []container.Port) string {
 | 
			
		||||
func DisplayablePorts(ports []types.Port) string {
 | 
			
		||||
	type portGroup struct {
 | 
			
		||||
		first uint16
 | 
			
		||||
		last  uint16
 | 
			
		||||
@@ -377,12 +375,12 @@ func formGroup(key string, start, last uint16) string {
 | 
			
		||||
		group = fmt.Sprintf("%s-%d", group, last)
 | 
			
		||||
	}
 | 
			
		||||
	if ip != "" {
 | 
			
		||||
		group = fmt.Sprintf("%s->%s", net.JoinHostPort(ip, group), group)
 | 
			
		||||
		group = fmt.Sprintf("%s:%s->%s", ip, group, group)
 | 
			
		||||
	}
 | 
			
		||||
	return group + "/" + groupType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func comparePorts(i, j container.Port) bool {
 | 
			
		||||
func comparePorts(i, j types.Port) bool {
 | 
			
		||||
	if i.PrivatePort != j.PrivatePort {
 | 
			
		||||
		return i.PrivatePort < j.PrivatePort
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										38
									
								
								vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,7 +9,6 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/distribution/reference"
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
	"github.com/docker/docker/api/types/volume"
 | 
			
		||||
	units "github.com/docker/go-units"
 | 
			
		||||
@@ -37,7 +36,7 @@ type DiskUsageContext struct {
 | 
			
		||||
	Verbose     bool
 | 
			
		||||
	LayersSize  int64
 | 
			
		||||
	Images      []*image.Summary
 | 
			
		||||
	Containers  []*container.Summary
 | 
			
		||||
	Containers  []*types.Container
 | 
			
		||||
	Volumes     []*volume.Volume
 | 
			
		||||
	BuildCache  []*types.BuildCache
 | 
			
		||||
	BuilderSize int64
 | 
			
		||||
@@ -125,7 +124,7 @@ func (ctx *DiskUsageContext) Write() (err error) {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	diskUsageContainersCtx := diskUsageContainersContext{containers: []*container.Summary{}}
 | 
			
		||||
	diskUsageContainersCtx := diskUsageContainersContext{containers: []*types.Container{}}
 | 
			
		||||
	diskUsageContainersCtx.Header = SubHeaderContext{
 | 
			
		||||
		"Type":        typeHeader,
 | 
			
		||||
		"TotalCount":  totalHeader,
 | 
			
		||||
@@ -237,7 +236,7 @@ func (ctx *DiskUsageContext) verboseWriteTable(duc *diskUsageContext) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, _ = ctx.Output.Write([]byte("\nLocal Volumes space usage:\n\n"))
 | 
			
		||||
	ctx.Output.Write([]byte("\nLocal Volumes space usage:\n\n"))
 | 
			
		||||
	for _, v := range duc.Volumes {
 | 
			
		||||
		if err := ctx.contextFormat(tmpl, v); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
@@ -249,7 +248,7 @@ func (ctx *DiskUsageContext) verboseWriteTable(duc *diskUsageContext) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, _ = fmt.Fprintf(ctx.Output, "\nBuild cache usage: %s\n\n", units.HumanSize(float64(ctx.BuilderSize)))
 | 
			
		||||
	fmt.Fprintf(ctx.Output, "\nBuild cache usage: %s\n\n", units.HumanSize(float64(ctx.BuilderSize)))
 | 
			
		||||
	for _, v := range duc.BuildCache {
 | 
			
		||||
		if err := ctx.contextFormat(tmpl, v); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
@@ -314,7 +313,7 @@ func (c *diskUsageImagesContext) Reclaimable() string {
 | 
			
		||||
 | 
			
		||||
type diskUsageContainersContext struct {
 | 
			
		||||
	HeaderContext
 | 
			
		||||
	containers []*container.Summary
 | 
			
		||||
	containers []*types.Container
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *diskUsageContainersContext) MarshalJSON() ([]byte, error) {
 | 
			
		||||
@@ -329,16 +328,16 @@ func (c *diskUsageContainersContext) TotalCount() string {
 | 
			
		||||
	return strconv.Itoa(len(c.containers))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *diskUsageContainersContext) isActive(ctr container.Summary) bool {
 | 
			
		||||
	return strings.Contains(ctr.State, "running") ||
 | 
			
		||||
		strings.Contains(ctr.State, "paused") ||
 | 
			
		||||
		strings.Contains(ctr.State, "restarting")
 | 
			
		||||
func (c *diskUsageContainersContext) isActive(container types.Container) bool {
 | 
			
		||||
	return strings.Contains(container.State, "running") ||
 | 
			
		||||
		strings.Contains(container.State, "paused") ||
 | 
			
		||||
		strings.Contains(container.State, "restarting")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *diskUsageContainersContext) Active() string {
 | 
			
		||||
	used := 0
 | 
			
		||||
	for _, ctr := range c.containers {
 | 
			
		||||
		if c.isActive(*ctr) {
 | 
			
		||||
	for _, container := range c.containers {
 | 
			
		||||
		if c.isActive(*container) {
 | 
			
		||||
			used++
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -349,21 +348,22 @@ func (c *diskUsageContainersContext) Active() string {
 | 
			
		||||
func (c *diskUsageContainersContext) Size() string {
 | 
			
		||||
	var size int64
 | 
			
		||||
 | 
			
		||||
	for _, ctr := range c.containers {
 | 
			
		||||
		size += ctr.SizeRw
 | 
			
		||||
	for _, container := range c.containers {
 | 
			
		||||
		size += container.SizeRw
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return units.HumanSize(float64(size))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *diskUsageContainersContext) Reclaimable() string {
 | 
			
		||||
	var reclaimable, totalSize int64
 | 
			
		||||
	var reclaimable int64
 | 
			
		||||
	var totalSize int64
 | 
			
		||||
 | 
			
		||||
	for _, ctr := range c.containers {
 | 
			
		||||
		if !c.isActive(*ctr) {
 | 
			
		||||
			reclaimable += ctr.SizeRw
 | 
			
		||||
	for _, container := range c.containers {
 | 
			
		||||
		if !c.isActive(*container) {
 | 
			
		||||
			reclaimable += container.SizeRw
 | 
			
		||||
		}
 | 
			
		||||
		totalSize += ctr.SizeRw
 | 
			
		||||
		totalSize += container.SizeRw
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if totalSize > 0 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/docker/cli/cli/command/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/docker/cli/cli/command/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,10 +13,9 @@ import (
 | 
			
		||||
	configtypes "github.com/docker/cli/cli/config/types"
 | 
			
		||||
	"github.com/docker/cli/cli/hints"
 | 
			
		||||
	"github.com/docker/cli/cli/streams"
 | 
			
		||||
	"github.com/docker/cli/internal/tui"
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	registrytypes "github.com/docker/docker/api/types/registry"
 | 
			
		||||
	"github.com/docker/docker/registry"
 | 
			
		||||
	"github.com/morikuni/aec"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -30,7 +29,7 @@ const (
 | 
			
		||||
 | 
			
		||||
// RegistryAuthenticationPrivilegedFunc returns a RequestPrivilegeFunc from the specified registry index info
 | 
			
		||||
// for the given command.
 | 
			
		||||
func RegistryAuthenticationPrivilegedFunc(cli Cli, index *registrytypes.IndexInfo, cmdName string) registrytypes.RequestAuthConfig {
 | 
			
		||||
func RegistryAuthenticationPrivilegedFunc(cli Cli, index *registrytypes.IndexInfo, cmdName string) types.RequestPrivilegeFunc {
 | 
			
		||||
	return func(ctx context.Context) (string, error) {
 | 
			
		||||
		_, _ = fmt.Fprintf(cli.Out(), "\nLogin prior to %s:\n", cmdName)
 | 
			
		||||
		indexServer := registry.GetAuthConfigKey(index)
 | 
			
		||||
@@ -180,9 +179,6 @@ func PromptUserForCredentials(ctx context.Context, cli Cli, argUser, argPassword
 | 
			
		||||
			}
 | 
			
		||||
		}()
 | 
			
		||||
 | 
			
		||||
		out := tui.NewOutput(cli.Err())
 | 
			
		||||
		out.PrintNote("A Personal Access Token (PAT) can be used instead.\n" +
 | 
			
		||||
			"To create a PAT, visit " + aec.Underline.Apply("https://app.docker.com/settings") + "\n\n")
 | 
			
		||||
		argPassword, err = PromptForInput(ctx, cli.In(), cli.Out(), "Password: ")
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return registrytypes.AuthConfig{}, err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/cli/cli/command/telemetry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/cli/cli/command/telemetry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import (
 | 
			
		||||
	"go.opentelemetry.io/otel/sdk/metric/metricdata"
 | 
			
		||||
	"go.opentelemetry.io/otel/sdk/resource"
 | 
			
		||||
	sdktrace "go.opentelemetry.io/otel/sdk/trace"
 | 
			
		||||
	semconv "go.opentelemetry.io/otel/semconv/v1.26.0"
 | 
			
		||||
	semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
 | 
			
		||||
	"go.opentelemetry.io/otel/trace"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/cli/cli/command/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/cli/cli/command/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -199,7 +199,7 @@ func PruneFilters(dockerCli Cli, pruneFilters filters.Args) filters.Args {
 | 
			
		||||
// AddPlatformFlag adds `platform` to a set of flags for API version 1.32 and later.
 | 
			
		||||
func AddPlatformFlag(flags *pflag.FlagSet, target *string) {
 | 
			
		||||
	flags.StringVar(target, "platform", os.Getenv("DOCKER_DEFAULT_PLATFORM"), "Set platform if server is multi-platform capable")
 | 
			
		||||
	_ = flags.SetAnnotation("platform", "version", []string{"1.32"})
 | 
			
		||||
	flags.SetAnnotation("platform", "version", []string{"1.32"})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ValidateOutputPath validates the output paths of the `export` and `save` commands.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/cli/cli/config/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/cli/cli/config/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -143,7 +143,7 @@ func load(configDir string) (*configfile.ConfigFile, error) {
 | 
			
		||||
	defer file.Close()
 | 
			
		||||
	err = configFile.LoadFromReader(file)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		err = errors.Wrapf(err, "parsing config file (%s)", filename)
 | 
			
		||||
		err = errors.Wrapf(err, "loading config file: %s: ", filename)
 | 
			
		||||
	}
 | 
			
		||||
	return configFile, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/docker/cli/cli/config/credentials/file_store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/docker/cli/cli/config/credentials/file_store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,12 +1,9 @@
 | 
			
		||||
package credentials
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net"
 | 
			
		||||
	"net/url"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync/atomic"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/cli/cli/config/types"
 | 
			
		||||
)
 | 
			
		||||
@@ -60,21 +57,6 @@ func (c *fileStore) GetAll() (map[string]types.AuthConfig, error) {
 | 
			
		||||
	return c.file.GetAuthConfigs(), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// unencryptedWarning warns the user when using an insecure credential storage.
 | 
			
		||||
// After a deprecation period, user will get prompted if stdin and stderr are a terminal.
 | 
			
		||||
// Otherwise, we'll assume they want it (sadly), because people may have been scripting
 | 
			
		||||
// insecure logins and we don't want to break them. Maybe they'll see the warning in their
 | 
			
		||||
// logs and fix things.
 | 
			
		||||
const unencryptedWarning = `
 | 
			
		||||
WARNING! Your credentials are stored unencrypted in '%s'.
 | 
			
		||||
Configure a credential helper to remove this warning. See
 | 
			
		||||
https://docs.docker.com/go/credential-store/
 | 
			
		||||
`
 | 
			
		||||
 | 
			
		||||
// alreadyPrinted ensures that we only print the unencryptedWarning once per
 | 
			
		||||
// CLI invocation (no need to warn the user multiple times per command).
 | 
			
		||||
var alreadyPrinted atomic.Bool
 | 
			
		||||
 | 
			
		||||
// Store saves the given credentials in the file store. This function is
 | 
			
		||||
// idempotent and does not update the file if credentials did not change.
 | 
			
		||||
func (c *fileStore) Store(authConfig types.AuthConfig) error {
 | 
			
		||||
@@ -84,19 +66,15 @@ func (c *fileStore) Store(authConfig types.AuthConfig) error {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	authConfigs[authConfig.ServerAddress] = authConfig
 | 
			
		||||
	if err := c.file.Save(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return c.file.Save()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	if !alreadyPrinted.Load() && authConfig.Password != "" {
 | 
			
		||||
		// Display a warning if we're storing the users password (not a token).
 | 
			
		||||
		//
 | 
			
		||||
		// FIXME(thaJeztah): make output configurable instead of hardcoding to os.Stderr
 | 
			
		||||
		_, _ = fmt.Fprintln(os.Stderr, fmt.Sprintf(unencryptedWarning, c.file.GetFilename()))
 | 
			
		||||
		alreadyPrinted.Store(true)
 | 
			
		||||
	}
 | 
			
		||||
func (c *fileStore) GetFilename() string {
 | 
			
		||||
	return c.file.GetFilename()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
func (c *fileStore) IsFileStore() bool {
 | 
			
		||||
	return true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConvertToHostname converts a registry url which has http|https prepended
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/cli/cli/context/store/metadatastore.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/cli/cli/context/store/metadatastore.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
	"sort"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/errdefs"
 | 
			
		||||
	"github.com/docker/docker/pkg/atomicwriter"
 | 
			
		||||
	"github.com/docker/docker/pkg/ioutils"
 | 
			
		||||
	"github.com/fvbommel/sortorder"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
@@ -40,7 +40,7 @@ func (s *metadataStore) createOrUpdate(meta Metadata) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return atomicwriter.WriteFile(filepath.Join(contextDir, metaFile), bytes, 0o644)
 | 
			
		||||
	return ioutils.AtomicWriteFile(filepath.Join(contextDir, metaFile), bytes, 0o644)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func parseTypedOrMap(payload []byte, getter TypeGetter) (any, error) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/cli/cli/context/store/tlsstore.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/cli/cli/context/store/tlsstore.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,7 +5,7 @@ import (
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/errdefs"
 | 
			
		||||
	"github.com/docker/docker/pkg/atomicwriter"
 | 
			
		||||
	"github.com/docker/docker/pkg/ioutils"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +32,7 @@ func (s *tlsStore) createOrUpdate(name, endpointName, filename string, data []by
 | 
			
		||||
	if err := os.MkdirAll(endpointDir, 0o700); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return atomicwriter.WriteFile(filepath.Join(endpointDir, filename), data, 0o600)
 | 
			
		||||
	return ioutils.AtomicWriteFile(filepath.Join(endpointDir, filename), data, 0o600)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *tlsStore) getData(name, endpointName, filename string) ([]byte, error) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										38
									
								
								vendor/github.com/docker/cli/cli/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/docker/cli/cli/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,29 +1,35 @@
 | 
			
		||||
package cli
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Errors is a list of errors.
 | 
			
		||||
// Useful in a loop if you don't want to return the error right away and you want to display after the loop,
 | 
			
		||||
// all the errors that happened during the loop.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [errors.Join] instead; will be removed in the next release.
 | 
			
		||||
type Errors []error
 | 
			
		||||
 | 
			
		||||
func (errList Errors) Error() string {
 | 
			
		||||
	if len(errList) < 1 {
 | 
			
		||||
		return ""
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	out := make([]string, len(errList))
 | 
			
		||||
	for i := range errList {
 | 
			
		||||
		out[i] = errList[i].Error()
 | 
			
		||||
	}
 | 
			
		||||
	return strings.Join(out, ", ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StatusError reports an unsuccessful exit by a command.
 | 
			
		||||
type StatusError struct {
 | 
			
		||||
	Cause      error
 | 
			
		||||
	Status     string
 | 
			
		||||
	StatusCode int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Error formats the error for printing. If a custom Status is provided,
 | 
			
		||||
// it is returned as-is, otherwise it generates a generic error-message
 | 
			
		||||
// based on the StatusCode.
 | 
			
		||||
func (e StatusError) Error() string {
 | 
			
		||||
	if e.Status != "" {
 | 
			
		||||
		return e.Status
 | 
			
		||||
	}
 | 
			
		||||
	if e.Cause != nil {
 | 
			
		||||
		return e.Cause.Error()
 | 
			
		||||
	}
 | 
			
		||||
	return "exit status " + strconv.Itoa(e.StatusCode)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e StatusError) Unwrap() error {
 | 
			
		||||
	return e.Cause
 | 
			
		||||
	return fmt.Sprintf("Status: %s, Code: %d", e.Status, e.StatusCode)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/cli/cli/flags/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/cli/cli/flags/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -138,7 +138,7 @@ func SetLogLevel(logLevel string) {
 | 
			
		||||
	if logLevel != "" {
 | 
			
		||||
		lvl, err := logrus.ParseLevel(logLevel)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			_, _ = fmt.Fprintln(os.Stderr, "Unable to parse logging level:", logLevel)
 | 
			
		||||
			fmt.Fprintf(os.Stderr, "Unable to parse logging level: %s\n", logLevel)
 | 
			
		||||
			os.Exit(1)
 | 
			
		||||
		}
 | 
			
		||||
		logrus.SetLevel(lvl)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/cli/cli/hints/hints.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/cli/cli/hints/hints.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,9 +5,7 @@ import (
 | 
			
		||||
	"strconv"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Enabled returns whether cli hints are enabled or not. Hints are enabled by
 | 
			
		||||
// default, but can be disabled through the "DOCKER_CLI_HINTS" environment
 | 
			
		||||
// variable.
 | 
			
		||||
// Enabled returns whether cli hints are enabled or not
 | 
			
		||||
func Enabled() bool {
 | 
			
		||||
	if v := os.Getenv("DOCKER_CLI_HINTS"); v != "" {
 | 
			
		||||
		enabled, err := strconv.ParseBool(v)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/docker/cli/cli/registry/client/endpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/docker/cli/cli/registry/client/endpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,7 +22,12 @@ type repositoryEndpoint struct {
 | 
			
		||||
 | 
			
		||||
// Name returns the repository name
 | 
			
		||||
func (r repositoryEndpoint) Name() string {
 | 
			
		||||
	return reference.Path(r.info.Name)
 | 
			
		||||
	repoName := r.info.Name.Name()
 | 
			
		||||
	// If endpoint does not support CanonicalName, use the RemoteName instead
 | 
			
		||||
	if r.endpoint.TrimHostname {
 | 
			
		||||
		repoName = reference.Path(r.info.Name)
 | 
			
		||||
	}
 | 
			
		||||
	return repoName
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BaseURL returns the endpoint url
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										40
									
								
								vendor/github.com/docker/cli/cli/required.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								vendor/github.com/docker/cli/cli/required.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,6 +1,8 @@
 | 
			
		||||
package cli
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
	"github.com/spf13/cobra"
 | 
			
		||||
)
 | 
			
		||||
@@ -12,20 +14,15 @@ func NoArgs(cmd *cobra.Command, args []string) error {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if cmd.HasSubCommands() {
 | 
			
		||||
		return errors.Errorf(
 | 
			
		||||
			"%[1]s: unknown command: %[2]s %[3]s\n\nUsage:  %[4]s\n\nRun '%[2]s --help' for more information",
 | 
			
		||||
			binName(cmd),
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			args[0],
 | 
			
		||||
			cmd.UseLine(),
 | 
			
		||||
		)
 | 
			
		||||
		return errors.New("\n" + strings.TrimRight(cmd.UsageString(), "\n"))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return errors.Errorf(
 | 
			
		||||
		"%[1]s: '%[2]s' accepts no arguments\n\nUsage:  %[3]s\n\nRun '%[2]s --help' for more information",
 | 
			
		||||
		binName(cmd),
 | 
			
		||||
		"%q accepts no arguments.\nSee '%s --help'.\n\nUsage:  %s\n\n%s",
 | 
			
		||||
		cmd.CommandPath(),
 | 
			
		||||
		cmd.CommandPath(),
 | 
			
		||||
		cmd.UseLine(),
 | 
			
		||||
		cmd.Short,
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -36,12 +33,13 @@ func RequiresMinArgs(minArgs int) cobra.PositionalArgs {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		return errors.Errorf(
 | 
			
		||||
			"%[1]s: '%[2]s' requires at least %[3]d %[4]s\n\nUsage:  %[5]s\n\nSee '%[2]s --help' for more information",
 | 
			
		||||
			binName(cmd),
 | 
			
		||||
			"%q requires at least %d %s.\nSee '%s --help'.\n\nUsage:  %s\n\n%s",
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			minArgs,
 | 
			
		||||
			pluralize("argument", minArgs),
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			cmd.UseLine(),
 | 
			
		||||
			cmd.Short,
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -53,12 +51,13 @@ func RequiresMaxArgs(maxArgs int) cobra.PositionalArgs {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		return errors.Errorf(
 | 
			
		||||
			"%[1]s: '%[2]s' requires at most %[3]d %[4]s\n\nUsage:  %[5]s\n\nSRun '%[2]s --help' for more information",
 | 
			
		||||
			binName(cmd),
 | 
			
		||||
			"%q requires at most %d %s.\nSee '%s --help'.\n\nUsage:  %s\n\n%s",
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			maxArgs,
 | 
			
		||||
			pluralize("argument", maxArgs),
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			cmd.UseLine(),
 | 
			
		||||
			cmd.Short,
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -70,13 +69,14 @@ func RequiresRangeArgs(minArgs int, maxArgs int) cobra.PositionalArgs {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		return errors.Errorf(
 | 
			
		||||
			"%[1]s: '%[2]s' requires at least %[3]d and at most %[4]d %[5]s\n\nUsage:  %[6]s\n\nRun '%[2]s --help' for more information",
 | 
			
		||||
			binName(cmd),
 | 
			
		||||
			"%q requires at least %d and at most %d %s.\nSee '%s --help'.\n\nUsage:  %s\n\n%s",
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			minArgs,
 | 
			
		||||
			maxArgs,
 | 
			
		||||
			pluralize("argument", maxArgs),
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			cmd.UseLine(),
 | 
			
		||||
			cmd.Short,
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -88,21 +88,17 @@ func ExactArgs(number int) cobra.PositionalArgs {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		return errors.Errorf(
 | 
			
		||||
			"%[1]s: '%[2]s' requires %[3]d %[4]s\n\nUsage:  %[5]s\n\nRun '%[2]s --help' for more information",
 | 
			
		||||
			binName(cmd),
 | 
			
		||||
			"%q requires exactly %d %s.\nSee '%s --help'.\n\nUsage:  %s\n\n%s",
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			number,
 | 
			
		||||
			pluralize("argument", number),
 | 
			
		||||
			cmd.CommandPath(),
 | 
			
		||||
			cmd.UseLine(),
 | 
			
		||||
			cmd.Short,
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// binName returns the name of the binary / root command (usually 'docker').
 | 
			
		||||
func binName(cmd *cobra.Command) string {
 | 
			
		||||
	return cmd.Root().Name()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//nolint:unparam
 | 
			
		||||
func pluralize(word string, number int) string {
 | 
			
		||||
	if number == 1 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/github.com/docker/cli/internal/tui/chip.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/docker/cli/internal/tui/chip.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,12 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
import "strconv"
 | 
			
		||||
 | 
			
		||||
func Chip(fg, bg int, content string) string {
 | 
			
		||||
	fgAnsi := "\x1b[38;5;" + strconv.Itoa(fg) + "m"
 | 
			
		||||
	bgAnsi := "\x1b[48;5;" + strconv.Itoa(bg) + "m"
 | 
			
		||||
	return fgAnsi + bgAnsi + content + "\x1b[0m"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								vendor/github.com/docker/cli/internal/tui/colors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/docker/cli/internal/tui/colors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,33 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/morikuni/aec"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ColorTitle     = aec.NewBuilder(aec.DefaultF, aec.Bold).ANSI
 | 
			
		||||
	ColorPrimary   = aec.NewBuilder(aec.DefaultF, aec.Bold).ANSI
 | 
			
		||||
	ColorSecondary = aec.DefaultF
 | 
			
		||||
	ColorTertiary  = aec.NewBuilder(aec.DefaultF, aec.Faint).ANSI
 | 
			
		||||
	ColorLink      = aec.NewBuilder(aec.LightCyanF, aec.Underline).ANSI
 | 
			
		||||
	ColorWarning   = aec.LightYellowF
 | 
			
		||||
	ColorFlag      = aec.NewBuilder(aec.Bold).ANSI
 | 
			
		||||
	ColorNone      = aec.ANSI(noColor{})
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type noColor struct{}
 | 
			
		||||
 | 
			
		||||
func (a noColor) With(_ ...aec.ANSI) aec.ANSI {
 | 
			
		||||
	return a
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a noColor) Apply(s string) string {
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a noColor) String() string {
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								vendor/github.com/docker/cli/internal/tui/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								vendor/github.com/docker/cli/internal/tui/count.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,70 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/mattn/go-runewidth"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func cleanANSI(s string) string {
 | 
			
		||||
	for {
 | 
			
		||||
		start := strings.Index(s, "\x1b")
 | 
			
		||||
		if start == -1 {
 | 
			
		||||
			return s
 | 
			
		||||
		}
 | 
			
		||||
		end := strings.Index(s[start:], "m")
 | 
			
		||||
		if end == -1 {
 | 
			
		||||
			return s
 | 
			
		||||
		}
 | 
			
		||||
		s = s[:start] + s[start+end+1:]
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Width returns the width of the string, ignoring ANSI escape codes.
 | 
			
		||||
// Not all ANSI escape codes are supported yet.
 | 
			
		||||
func Width(s string) int {
 | 
			
		||||
	return runewidth.StringWidth(cleanANSI(s))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ellipsis truncates a string to a given number of runes with an ellipsis at the end.
 | 
			
		||||
// It tries to persist the ANSI escape sequences.
 | 
			
		||||
func Ellipsis(s string, length int) string {
 | 
			
		||||
	out := make([]rune, 0, length)
 | 
			
		||||
	ln := 0
 | 
			
		||||
	inEscape := false
 | 
			
		||||
	tooLong := false
 | 
			
		||||
 | 
			
		||||
	for _, r := range s {
 | 
			
		||||
		if r == '\x1b' {
 | 
			
		||||
			out = append(out, r)
 | 
			
		||||
			inEscape = true
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		if inEscape {
 | 
			
		||||
			out = append(out, r)
 | 
			
		||||
			if r == 'm' {
 | 
			
		||||
				inEscape = false
 | 
			
		||||
				if tooLong {
 | 
			
		||||
					break
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		ln += 1
 | 
			
		||||
		if ln == length {
 | 
			
		||||
			tooLong = true
 | 
			
		||||
		}
 | 
			
		||||
		if !tooLong {
 | 
			
		||||
			out = append(out, r)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if tooLong {
 | 
			
		||||
		return string(out) + "…"
 | 
			
		||||
	}
 | 
			
		||||
	return string(out)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								vendor/github.com/docker/cli/internal/tui/note.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								vendor/github.com/docker/cli/internal/tui/note.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,39 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/morikuni/aec"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var InfoHeader = Str{
 | 
			
		||||
	Plain: " Info -> ",
 | 
			
		||||
	Fancy: aec.Bold.Apply(aec.LightCyanB.Apply(aec.BlackF.Apply("i")) + " " + aec.LightCyanF.Apply("Info → ")),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) PrintNote(format string, args ...any) {
 | 
			
		||||
	if o.isTerminal {
 | 
			
		||||
		// TODO: Handle all flags
 | 
			
		||||
		format = strings.ReplaceAll(format, "--platform", ColorFlag.Apply("--platform"))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	header := o.Sprint(InfoHeader)
 | 
			
		||||
 | 
			
		||||
	_, _ = fmt.Fprint(o, "\n", header)
 | 
			
		||||
	s := fmt.Sprintf(format, args...)
 | 
			
		||||
	for idx, line := range strings.Split(s, "\n") {
 | 
			
		||||
		if idx > 0 {
 | 
			
		||||
			_, _ = fmt.Fprint(o, strings.Repeat(" ", Width(header)))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		l := line
 | 
			
		||||
		if o.isTerminal {
 | 
			
		||||
			l = aec.Italic.Apply(l)
 | 
			
		||||
		}
 | 
			
		||||
		_, _ = fmt.Fprintln(o, l)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								vendor/github.com/docker/cli/internal/tui/output.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								vendor/github.com/docker/cli/internal/tui/output.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,62 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/cli/cli/streams"
 | 
			
		||||
	"github.com/morikuni/aec"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Output struct {
 | 
			
		||||
	*streams.Out
 | 
			
		||||
	isTerminal bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type terminalPrintable interface {
 | 
			
		||||
	String(isTerminal bool) string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewOutput(out *streams.Out) Output {
 | 
			
		||||
	return Output{
 | 
			
		||||
		Out:        out,
 | 
			
		||||
		isTerminal: out.IsTerminal(),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) Color(clr aec.ANSI) aec.ANSI {
 | 
			
		||||
	if o.isTerminal {
 | 
			
		||||
		return clr
 | 
			
		||||
	}
 | 
			
		||||
	return ColorNone
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) Sprint(all ...any) string {
 | 
			
		||||
	var out []any
 | 
			
		||||
	for _, p := range all {
 | 
			
		||||
		if s, ok := p.(terminalPrintable); ok {
 | 
			
		||||
			out = append(out, s.String(o.isTerminal))
 | 
			
		||||
		} else {
 | 
			
		||||
			out = append(out, p)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return fmt.Sprint(out...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) PrintlnWithColor(clr aec.ANSI, args ...any) {
 | 
			
		||||
	msg := o.Sprint(args...)
 | 
			
		||||
	if o.isTerminal {
 | 
			
		||||
		msg = clr.Apply(msg)
 | 
			
		||||
	}
 | 
			
		||||
	_, _ = fmt.Fprintln(o.Out, msg)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) Println(p ...any) {
 | 
			
		||||
	_, _ = fmt.Fprintln(o.Out, o.Sprint(p...))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o Output) Print(p ...any) {
 | 
			
		||||
	_, _ = fmt.Print(o.Out, o.Sprint(p...))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								vendor/github.com/docker/cli/internal/tui/str.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/docker/cli/internal/tui/str.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,19 +0,0 @@
 | 
			
		||||
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
 | 
			
		||||
//go:build go1.22
 | 
			
		||||
 | 
			
		||||
package tui
 | 
			
		||||
 | 
			
		||||
type Str struct {
 | 
			
		||||
	// Fancy is the fancy string representation of the string.
 | 
			
		||||
	Fancy string
 | 
			
		||||
 | 
			
		||||
	// Plain is the plain string representation of the string.
 | 
			
		||||
	Plain string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p Str) String(isTerminal bool) string {
 | 
			
		||||
	if isTerminal {
 | 
			
		||||
		return p.Fancy
 | 
			
		||||
	}
 | 
			
		||||
	return p.Plain
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/docker/cli/opts/network.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/docker/cli/opts/network.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,7 +5,6 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -17,7 +16,6 @@ const (
 | 
			
		||||
	networkOptMacAddress  = "mac-address"
 | 
			
		||||
	networkOptLinkLocalIP = "link-local-ip"
 | 
			
		||||
	driverOpt             = "driver-opt"
 | 
			
		||||
	gwPriorityOpt         = "gw-priority"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NetworkAttachmentOpts represents the network options for endpoint creation
 | 
			
		||||
@@ -30,7 +28,6 @@ type NetworkAttachmentOpts struct {
 | 
			
		||||
	IPv6Address  string
 | 
			
		||||
	LinkLocalIPs []string
 | 
			
		||||
	MacAddress   string
 | 
			
		||||
	GwPriority   int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkOpt represents a network config in swarm mode.
 | 
			
		||||
@@ -86,11 +83,6 @@ func (n *NetworkOpt) Set(value string) error { //nolint:gocyclo
 | 
			
		||||
					netOpt.DriverOpts = make(map[string]string)
 | 
			
		||||
				}
 | 
			
		||||
				netOpt.DriverOpts[key] = val
 | 
			
		||||
			case gwPriorityOpt:
 | 
			
		||||
				netOpt.GwPriority, err = strconv.Atoi(val)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return fmt.Errorf("invalid gw-priority: %w", err)
 | 
			
		||||
				}
 | 
			
		||||
			default:
 | 
			
		||||
				return errors.New("invalid field key " + key)
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/docker/api/common.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/docker/api/common.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,7 +3,7 @@ package api // import "github.com/docker/docker/api"
 | 
			
		||||
// Common constants for daemon and client.
 | 
			
		||||
const (
 | 
			
		||||
	// DefaultVersion of the current REST API.
 | 
			
		||||
	DefaultVersion = "1.48"
 | 
			
		||||
	DefaultVersion = "1.47"
 | 
			
		||||
 | 
			
		||||
	// MinSupportedAPIVersion is the minimum API version that can be supported
 | 
			
		||||
	// by the API server, specified as "major.minor". Note that the daemon
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										876
									
								
								vendor/github.com/docker/docker/api/swagger.yaml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										876
									
								
								vendor/github.com/docker/docker/api/swagger.yaml
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										27
									
								
								vendor/github.com/docker/docker/api/types/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/docker/docker/api/types/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ import (
 | 
			
		||||
	"github.com/docker/docker/api/types/registry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NewHijackedResponse initializes a [HijackedResponse] type.
 | 
			
		||||
// NewHijackedResponse intializes a HijackedResponse type
 | 
			
		||||
func NewHijackedResponse(conn net.Conn, mediaType string) HijackedResponse {
 | 
			
		||||
	return HijackedResponse{Conn: conn, Reader: bufio.NewReader(conn), mediaType: mediaType}
 | 
			
		||||
}
 | 
			
		||||
@@ -129,6 +129,14 @@ type ImageBuildResponse struct {
 | 
			
		||||
	OSType string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RequestPrivilegeFunc is a function interface that
 | 
			
		||||
// clients can supply to retry operations after
 | 
			
		||||
// getting an authorization error.
 | 
			
		||||
// This function returns the registry authentication
 | 
			
		||||
// header value in base 64 format, or an error
 | 
			
		||||
// if the privilege request fails.
 | 
			
		||||
type RequestPrivilegeFunc func(context.Context) (string, error)
 | 
			
		||||
 | 
			
		||||
// NodeListOptions holds parameters to list nodes with.
 | 
			
		||||
type NodeListOptions struct {
 | 
			
		||||
	Filters filters.Args
 | 
			
		||||
@@ -227,18 +235,11 @@ type PluginDisableOptions struct {
 | 
			
		||||
 | 
			
		||||
// PluginInstallOptions holds parameters to install a plugin.
 | 
			
		||||
type PluginInstallOptions struct {
 | 
			
		||||
	Disabled             bool
 | 
			
		||||
	AcceptAllPermissions bool
 | 
			
		||||
	RegistryAuth         string // RegistryAuth is the base64 encoded credentials for the registry
 | 
			
		||||
	RemoteRef            string // RemoteRef is the plugin name on the registry
 | 
			
		||||
 | 
			
		||||
	// PrivilegeFunc is a function that clients can supply to retry operations
 | 
			
		||||
	// after getting an authorization error. This function returns the registry
 | 
			
		||||
	// authentication header value in base64 encoded format, or an error if the
 | 
			
		||||
	// privilege request fails.
 | 
			
		||||
	//
 | 
			
		||||
	// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].
 | 
			
		||||
	PrivilegeFunc         func(context.Context) (string, error)
 | 
			
		||||
	Disabled              bool
 | 
			
		||||
	AcceptAllPermissions  bool
 | 
			
		||||
	RegistryAuth          string // RegistryAuth is the base64 encoded credentials for the registry
 | 
			
		||||
	RemoteRef             string // RemoteRef is the plugin name on the registry
 | 
			
		||||
	PrivilegeFunc         RequestPrivilegeFunc
 | 
			
		||||
	AcceptPermissionsFunc func(context.Context, PluginPrivileges) (bool, error)
 | 
			
		||||
	Args                  []string
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										133
									
								
								vendor/github.com/docker/docker/api/types/container/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										133
									
								
								vendor/github.com/docker/docker/api/types/container/container.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,10 +4,6 @@ import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/mount"
 | 
			
		||||
	"github.com/docker/docker/api/types/storage"
 | 
			
		||||
	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// PruneReport contains the response for Engine API:
 | 
			
		||||
@@ -46,132 +42,3 @@ type StatsResponseReader struct {
 | 
			
		||||
	Body   io.ReadCloser `json:"body"`
 | 
			
		||||
	OSType string        `json:"ostype"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MountPoint represents a mount point configuration inside the container.
 | 
			
		||||
// This is used for reporting the mountpoints in use by a container.
 | 
			
		||||
type MountPoint struct {
 | 
			
		||||
	// Type is the type of mount, see `Type<foo>` definitions in
 | 
			
		||||
	// github.com/docker/docker/api/types/mount.Type
 | 
			
		||||
	Type mount.Type `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Name is the name reference to the underlying data defined by `Source`
 | 
			
		||||
	// e.g., the volume name.
 | 
			
		||||
	Name string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Source is the source location of the mount.
 | 
			
		||||
	//
 | 
			
		||||
	// For volumes, this contains the storage location of the volume (within
 | 
			
		||||
	// `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains
 | 
			
		||||
	// the source (host) part of the bind-mount. For `tmpfs` mount points, this
 | 
			
		||||
	// field is empty.
 | 
			
		||||
	Source string
 | 
			
		||||
 | 
			
		||||
	// Destination is the path relative to the container root (`/`) where the
 | 
			
		||||
	// Source is mounted inside the container.
 | 
			
		||||
	Destination string
 | 
			
		||||
 | 
			
		||||
	// Driver is the volume driver used to create the volume (if it is a volume).
 | 
			
		||||
	Driver string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Mode is a comma separated list of options supplied by the user when
 | 
			
		||||
	// creating the bind/volume mount.
 | 
			
		||||
	//
 | 
			
		||||
	// The default is platform-specific (`"z"` on Linux, empty on Windows).
 | 
			
		||||
	Mode string
 | 
			
		||||
 | 
			
		||||
	// RW indicates whether the mount is mounted writable (read-write).
 | 
			
		||||
	RW bool
 | 
			
		||||
 | 
			
		||||
	// Propagation describes how mounts are propagated from the host into the
 | 
			
		||||
	// mount point, and vice-versa. Refer to the Linux kernel documentation
 | 
			
		||||
	// for details:
 | 
			
		||||
	// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt
 | 
			
		||||
	//
 | 
			
		||||
	// This field is not used on Windows.
 | 
			
		||||
	Propagation mount.Propagation
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// State stores container's running state
 | 
			
		||||
// it's part of ContainerJSONBase and returned by "inspect" command
 | 
			
		||||
type State struct {
 | 
			
		||||
	Status     string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead"
 | 
			
		||||
	Running    bool
 | 
			
		||||
	Paused     bool
 | 
			
		||||
	Restarting bool
 | 
			
		||||
	OOMKilled  bool
 | 
			
		||||
	Dead       bool
 | 
			
		||||
	Pid        int
 | 
			
		||||
	ExitCode   int
 | 
			
		||||
	Error      string
 | 
			
		||||
	StartedAt  string
 | 
			
		||||
	FinishedAt string
 | 
			
		||||
	Health     *Health `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Summary contains response of Engine API:
 | 
			
		||||
// GET "/containers/json"
 | 
			
		||||
type Summary struct {
 | 
			
		||||
	ID         string `json:"Id"`
 | 
			
		||||
	Names      []string
 | 
			
		||||
	Image      string
 | 
			
		||||
	ImageID    string
 | 
			
		||||
	Command    string
 | 
			
		||||
	Created    int64
 | 
			
		||||
	Ports      []Port
 | 
			
		||||
	SizeRw     int64 `json:",omitempty"`
 | 
			
		||||
	SizeRootFs int64 `json:",omitempty"`
 | 
			
		||||
	Labels     map[string]string
 | 
			
		||||
	State      string
 | 
			
		||||
	Status     string
 | 
			
		||||
	HostConfig struct {
 | 
			
		||||
		NetworkMode string            `json:",omitempty"`
 | 
			
		||||
		Annotations map[string]string `json:",omitempty"`
 | 
			
		||||
	}
 | 
			
		||||
	NetworkSettings *NetworkSettingsSummary
 | 
			
		||||
	Mounts          []MountPoint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerJSONBase contains response of Engine API GET "/containers/{name:.*}/json"
 | 
			
		||||
// for API version 1.18 and older.
 | 
			
		||||
//
 | 
			
		||||
// TODO(thaJeztah): combine ContainerJSONBase and InspectResponse into a single struct.
 | 
			
		||||
// The split between ContainerJSONBase (ContainerJSONBase) and InspectResponse (InspectResponse)
 | 
			
		||||
// was done in commit 6deaa58ba5f051039643cedceee97c8695e2af74 (https://github.com/moby/moby/pull/13675).
 | 
			
		||||
// ContainerJSONBase contained all fields for API < 1.19, and InspectResponse
 | 
			
		||||
// held fields that were added in API 1.19 and up. Given that the minimum
 | 
			
		||||
// supported API version is now 1.24, we no longer use the separate type.
 | 
			
		||||
type ContainerJSONBase struct {
 | 
			
		||||
	ID              string `json:"Id"`
 | 
			
		||||
	Created         string
 | 
			
		||||
	Path            string
 | 
			
		||||
	Args            []string
 | 
			
		||||
	State           *State
 | 
			
		||||
	Image           string
 | 
			
		||||
	ResolvConfPath  string
 | 
			
		||||
	HostnamePath    string
 | 
			
		||||
	HostsPath       string
 | 
			
		||||
	LogPath         string
 | 
			
		||||
	Name            string
 | 
			
		||||
	RestartCount    int
 | 
			
		||||
	Driver          string
 | 
			
		||||
	Platform        string
 | 
			
		||||
	MountLabel      string
 | 
			
		||||
	ProcessLabel    string
 | 
			
		||||
	AppArmorProfile string
 | 
			
		||||
	ExecIDs         []string
 | 
			
		||||
	HostConfig      *HostConfig
 | 
			
		||||
	GraphDriver     storage.DriverData
 | 
			
		||||
	SizeRw          *int64 `json:",omitempty"`
 | 
			
		||||
	SizeRootFs      *int64 `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InspectResponse is the response for the GET "/containers/{name:.*}/json"
 | 
			
		||||
// endpoint.
 | 
			
		||||
type InspectResponse struct {
 | 
			
		||||
	*ContainerJSONBase
 | 
			
		||||
	Mounts          []MountPoint
 | 
			
		||||
	Config          *Config
 | 
			
		||||
	NetworkSettings *NetworkSettings
 | 
			
		||||
	// ImageManifestDescriptor is the descriptor of a platform-specific manifest of the image used to create the container.
 | 
			
		||||
	ImageManifestDescriptor *ocispec.Descriptor `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								vendor/github.com/docker/docker/api/types/container/health.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/docker/docker/api/types/container/health.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,26 +0,0 @@
 | 
			
		||||
package container
 | 
			
		||||
 | 
			
		||||
import "time"
 | 
			
		||||
 | 
			
		||||
// Health states
 | 
			
		||||
const (
 | 
			
		||||
	NoHealthcheck = "none"      // Indicates there is no healthcheck
 | 
			
		||||
	Starting      = "starting"  // Starting indicates that the container is not yet ready
 | 
			
		||||
	Healthy       = "healthy"   // Healthy indicates that the container is running correctly
 | 
			
		||||
	Unhealthy     = "unhealthy" // Unhealthy indicates that the container has a problem
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Health stores information about the container's healthcheck results
 | 
			
		||||
type Health struct {
 | 
			
		||||
	Status        string               // Status is one of [Starting], [Healthy] or [Unhealthy].
 | 
			
		||||
	FailingStreak int                  // FailingStreak is the number of consecutive failures
 | 
			
		||||
	Log           []*HealthcheckResult // Log contains the last few results (oldest first)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HealthcheckResult stores information about a single run of a healthcheck probe
 | 
			
		||||
type HealthcheckResult struct {
 | 
			
		||||
	Start    time.Time // Start is the time this check started
 | 
			
		||||
	End      time.Time // End is the time this check ended
 | 
			
		||||
	ExitCode int       // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe
 | 
			
		||||
	Output   string    // Output from last check
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										56
									
								
								vendor/github.com/docker/docker/api/types/container/network_settings.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								vendor/github.com/docker/docker/api/types/container/network_settings.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,56 +0,0 @@
 | 
			
		||||
package container
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/api/types/network"
 | 
			
		||||
	"github.com/docker/go-connections/nat"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NetworkSettings exposes the network settings in the api
 | 
			
		||||
type NetworkSettings struct {
 | 
			
		||||
	NetworkSettingsBase
 | 
			
		||||
	DefaultNetworkSettings
 | 
			
		||||
	Networks map[string]*network.EndpointSettings
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkSettingsBase holds networking state for a container when inspecting it.
 | 
			
		||||
type NetworkSettingsBase struct {
 | 
			
		||||
	Bridge     string      // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag.
 | 
			
		||||
	SandboxID  string      // SandboxID uniquely represents a container's network stack
 | 
			
		||||
	SandboxKey string      // SandboxKey identifies the sandbox
 | 
			
		||||
	Ports      nat.PortMap // Ports is a collection of PortBinding indexed by Port
 | 
			
		||||
 | 
			
		||||
	// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	HairpinMode bool
 | 
			
		||||
	// LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	LinkLocalIPv6Address string
 | 
			
		||||
	// LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	LinkLocalIPv6PrefixLen int
 | 
			
		||||
	SecondaryIPAddresses   []network.Address // Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DefaultNetworkSettings holds network information
 | 
			
		||||
// during the 2 release deprecation period.
 | 
			
		||||
// It will be removed in Docker 1.11.
 | 
			
		||||
type DefaultNetworkSettings struct {
 | 
			
		||||
	EndpointID          string // EndpointID uniquely represents a service endpoint in a Sandbox
 | 
			
		||||
	Gateway             string // Gateway holds the gateway address for the network
 | 
			
		||||
	GlobalIPv6Address   string // GlobalIPv6Address holds network's global IPv6 address
 | 
			
		||||
	GlobalIPv6PrefixLen int    // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address
 | 
			
		||||
	IPAddress           string // IPAddress holds the IPv4 address for the network
 | 
			
		||||
	IPPrefixLen         int    // IPPrefixLen represents mask length of network's IPv4 address
 | 
			
		||||
	IPv6Gateway         string // IPv6Gateway holds gateway address specific for IPv6
 | 
			
		||||
	MacAddress          string // MacAddress holds the MAC address for the network
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkSettingsSummary provides a summary of container's networks
 | 
			
		||||
// in /containers/json
 | 
			
		||||
type NetworkSettingsSummary struct {
 | 
			
		||||
	Networks map[string]*network.EndpointSettings
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								vendor/github.com/docker/docker/api/types/container/stats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/docker/docker/api/types/container/stats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -148,15 +148,7 @@ type PidsStats struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Stats is Ultimate struct aggregating all types of stats of one container
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [StatsResponse] instead. This type will be removed in the next release.
 | 
			
		||||
type Stats = StatsResponse
 | 
			
		||||
 | 
			
		||||
// StatsResponse aggregates all types of stats of one container.
 | 
			
		||||
type StatsResponse struct {
 | 
			
		||||
	Name string `json:"name,omitempty"`
 | 
			
		||||
	ID   string `json:"id,omitempty"`
 | 
			
		||||
 | 
			
		||||
type Stats struct {
 | 
			
		||||
	// Common stats
 | 
			
		||||
	Read    time.Time `json:"read"`
 | 
			
		||||
	PreRead time.Time `json:"preread"`
 | 
			
		||||
@@ -170,8 +162,20 @@ type StatsResponse struct {
 | 
			
		||||
	StorageStats StorageStats `json:"storage_stats,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Shared stats
 | 
			
		||||
	CPUStats    CPUStats                `json:"cpu_stats,omitempty"`
 | 
			
		||||
	PreCPUStats CPUStats                `json:"precpu_stats,omitempty"` // "Pre"="Previous"
 | 
			
		||||
	MemoryStats MemoryStats             `json:"memory_stats,omitempty"`
 | 
			
		||||
	Networks    map[string]NetworkStats `json:"networks,omitempty"`
 | 
			
		||||
	CPUStats    CPUStats    `json:"cpu_stats,omitempty"`
 | 
			
		||||
	PreCPUStats CPUStats    `json:"precpu_stats,omitempty"` // "Pre"="Previous"
 | 
			
		||||
	MemoryStats MemoryStats `json:"memory_stats,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StatsResponse is newly used Networks.
 | 
			
		||||
//
 | 
			
		||||
// TODO(thaJeztah): unify with [Stats]. This wrapper was to account for pre-api v1.21 changes, see https://github.com/moby/moby/commit/d3379946ec96fb6163cb8c4517d7d5a067045801
 | 
			
		||||
type StatsResponse struct {
 | 
			
		||||
	Stats
 | 
			
		||||
 | 
			
		||||
	Name string `json:"name,omitempty"`
 | 
			
		||||
	ID   string `json:"id,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Networks request version >=1.21
 | 
			
		||||
	Networks map[string]NetworkStats `json:"networks,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/docker/docker/api/types/filters/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/docker/docker/api/types/filters/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,3 +22,16 @@ func (e invalidFilter) Error() string {
 | 
			
		||||
 | 
			
		||||
// InvalidParameter marks this error as ErrInvalidParameter
 | 
			
		||||
func (e invalidFilter) InvalidParameter() {}
 | 
			
		||||
 | 
			
		||||
// unreachableCode is an error indicating that the code path was not expected to be reached.
 | 
			
		||||
type unreachableCode struct {
 | 
			
		||||
	Filter string
 | 
			
		||||
	Value  []string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// System marks this error as ErrSystem
 | 
			
		||||
func (e unreachableCode) System() {}
 | 
			
		||||
 | 
			
		||||
func (e unreachableCode) Error() string {
 | 
			
		||||
	return fmt.Sprintf("unreachable code reached for filter: %q with values: %s", e.Filter, e.Value)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/github.com/docker/docker/api/types/filters/parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/docker/docker/api/types/filters/parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -200,6 +200,7 @@ func (args Args) Match(field, source string) bool {
 | 
			
		||||
// Error is not nil only if the filter values are not valid boolean or are conflicting.
 | 
			
		||||
func (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) {
 | 
			
		||||
	fieldValues, ok := args.fields[key]
 | 
			
		||||
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return defaultValue, nil
 | 
			
		||||
	}
 | 
			
		||||
@@ -210,11 +211,20 @@ func (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) {
 | 
			
		||||
 | 
			
		||||
	isFalse := fieldValues["0"] || fieldValues["false"]
 | 
			
		||||
	isTrue := fieldValues["1"] || fieldValues["true"]
 | 
			
		||||
	if isFalse == isTrue {
 | 
			
		||||
		// Either no or conflicting truthy/falsy value were provided
 | 
			
		||||
 | 
			
		||||
	conflicting := isFalse && isTrue
 | 
			
		||||
	invalid := !isFalse && !isTrue
 | 
			
		||||
 | 
			
		||||
	if conflicting || invalid {
 | 
			
		||||
		return defaultValue, &invalidFilter{key, args.Get(key)}
 | 
			
		||||
	} else if isFalse {
 | 
			
		||||
		return false, nil
 | 
			
		||||
	} else if isTrue {
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
	return isTrue, nil
 | 
			
		||||
 | 
			
		||||
	// This code shouldn't be reached.
 | 
			
		||||
	return defaultValue, &unreachableCode{Filter: key, Value: args.Get(key)}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExactMatch returns true if the source matches exactly one of the values.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
package storage
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
// This file was generated by the swagger tool.
 | 
			
		||||
// Editing this file might prove futile when you re-run the swagger generate command
 | 
			
		||||
 | 
			
		||||
// DriverData Information about the storage driver used to store the container's and
 | 
			
		||||
// GraphDriverData Information about the storage driver used to store the container's and
 | 
			
		||||
// image's filesystem.
 | 
			
		||||
//
 | 
			
		||||
// swagger:model DriverData
 | 
			
		||||
type DriverData struct {
 | 
			
		||||
// swagger:model GraphDriverData
 | 
			
		||||
type GraphDriverData struct {
 | 
			
		||||
 | 
			
		||||
	// Low-level storage metadata, provided as key/value pairs.
 | 
			
		||||
	//
 | 
			
		||||
							
								
								
									
										140
									
								
								vendor/github.com/docker/docker/api/types/image/image_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										140
									
								
								vendor/github.com/docker/docker/api/types/image/image_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,140 +0,0 @@
 | 
			
		||||
package image
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/storage"
 | 
			
		||||
	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RootFS returns Image's RootFS description including the layer IDs.
 | 
			
		||||
type RootFS struct {
 | 
			
		||||
	Type   string   `json:",omitempty"`
 | 
			
		||||
	Layers []string `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InspectResponse contains response of Engine API:
 | 
			
		||||
// GET "/images/{name:.*}/json"
 | 
			
		||||
type InspectResponse struct {
 | 
			
		||||
	// ID is the content-addressable ID of an image.
 | 
			
		||||
	//
 | 
			
		||||
	// This identifier is a content-addressable digest calculated from the
 | 
			
		||||
	// image's configuration (which includes the digests of layers used by
 | 
			
		||||
	// the image).
 | 
			
		||||
	//
 | 
			
		||||
	// Note that this digest differs from the `RepoDigests` below, which
 | 
			
		||||
	// holds digests of image manifests that reference the image.
 | 
			
		||||
	ID string `json:"Id"`
 | 
			
		||||
 | 
			
		||||
	// RepoTags is a list of image names/tags in the local image cache that
 | 
			
		||||
	// reference this image.
 | 
			
		||||
	//
 | 
			
		||||
	// Multiple image tags can refer to the same image, and this list may be
 | 
			
		||||
	// empty if no tags reference the image, in which case the image is
 | 
			
		||||
	// "untagged", in which case it can still be referenced by its ID.
 | 
			
		||||
	RepoTags []string
 | 
			
		||||
 | 
			
		||||
	// RepoDigests is a list of content-addressable digests of locally available
 | 
			
		||||
	// image manifests that the image is referenced from. Multiple manifests can
 | 
			
		||||
	// refer to the same image.
 | 
			
		||||
	//
 | 
			
		||||
	// These digests are usually only available if the image was either pulled
 | 
			
		||||
	// from a registry, or if the image was pushed to a registry, which is when
 | 
			
		||||
	// the manifest is generated and its digest calculated.
 | 
			
		||||
	RepoDigests []string
 | 
			
		||||
 | 
			
		||||
	// Parent is the ID of the parent image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty and
 | 
			
		||||
	// is only set for images that were built/created locally. This field
 | 
			
		||||
	// is empty if the image was pulled from an image registry.
 | 
			
		||||
	Parent string
 | 
			
		||||
 | 
			
		||||
	// Comment is an optional message that can be set when committing or
 | 
			
		||||
	// importing the image.
 | 
			
		||||
	Comment string
 | 
			
		||||
 | 
			
		||||
	// Created is the date and time at which the image was created, formatted in
 | 
			
		||||
	// RFC 3339 nano-seconds (time.RFC3339Nano).
 | 
			
		||||
	//
 | 
			
		||||
	// This information is only available if present in the image,
 | 
			
		||||
	// and omitted otherwise.
 | 
			
		||||
	Created string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Container is the ID of the container that was used to create the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.
 | 
			
		||||
	Container string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// ContainerConfig is an optional field containing the configuration of the
 | 
			
		||||
	// container that was last committed when creating the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Previous versions of Docker builder used this field to store build cache,
 | 
			
		||||
	// and it is not in active use anymore.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.
 | 
			
		||||
	ContainerConfig *container.Config `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// DockerVersion is the version of Docker that was used to build the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty.
 | 
			
		||||
	DockerVersion string
 | 
			
		||||
 | 
			
		||||
	// Author is the name of the author that was specified when committing the
 | 
			
		||||
	// image, or as specified through MAINTAINER (deprecated) in the Dockerfile.
 | 
			
		||||
	Author string
 | 
			
		||||
	Config *container.Config
 | 
			
		||||
 | 
			
		||||
	// Architecture is the hardware CPU architecture that the image runs on.
 | 
			
		||||
	Architecture string
 | 
			
		||||
 | 
			
		||||
	// Variant is the CPU architecture variant (presently ARM-only).
 | 
			
		||||
	Variant string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// OS is the Operating System the image is built to run on.
 | 
			
		||||
	Os string
 | 
			
		||||
 | 
			
		||||
	// OsVersion is the version of the Operating System the image is built to
 | 
			
		||||
	// run on (especially for Windows).
 | 
			
		||||
	OsVersion string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Size is the total size of the image including all layers it is composed of.
 | 
			
		||||
	Size int64
 | 
			
		||||
 | 
			
		||||
	// VirtualSize is the total size of the image including all layers it is
 | 
			
		||||
	// composed of.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.
 | 
			
		||||
	VirtualSize int64 `json:"VirtualSize,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// GraphDriver holds information about the storage driver used to store the
 | 
			
		||||
	// container's and image's filesystem.
 | 
			
		||||
	GraphDriver storage.DriverData
 | 
			
		||||
 | 
			
		||||
	// RootFS contains information about the image's RootFS, including the
 | 
			
		||||
	// layer IDs.
 | 
			
		||||
	RootFS RootFS
 | 
			
		||||
 | 
			
		||||
	// Metadata of the image in the local cache.
 | 
			
		||||
	//
 | 
			
		||||
	// This information is local to the daemon, and not part of the image itself.
 | 
			
		||||
	Metadata Metadata
 | 
			
		||||
 | 
			
		||||
	// Descriptor is the OCI descriptor of the image target.
 | 
			
		||||
	// It's only set if the daemon provides a multi-platform image store.
 | 
			
		||||
	//
 | 
			
		||||
	// WARNING: This is experimental and may change at any time without any backward
 | 
			
		||||
	// compatibility.
 | 
			
		||||
	Descriptor *ocispec.Descriptor `json:"Descriptor,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Manifests is a list of image manifests available in this image.  It
 | 
			
		||||
	// provides a more detailed view of the platform-specific image manifests or
 | 
			
		||||
	// other image-attached data like build attestations.
 | 
			
		||||
	//
 | 
			
		||||
	// Only available if the daemon provides a multi-platform image store.
 | 
			
		||||
	//
 | 
			
		||||
	// WARNING: This is experimental and may change at any time without any backward
 | 
			
		||||
	// compatibility.
 | 
			
		||||
	Manifests []ManifestSummary `json:"Manifests,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								vendor/github.com/docker/docker/api/types/image/opts.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								vendor/github.com/docker/docker/api/types/image/opts.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -38,7 +38,7 @@ type PullOptions struct {
 | 
			
		||||
	// authentication header value in base64 encoded format, or an error if the
 | 
			
		||||
	// privilege request fails.
 | 
			
		||||
	//
 | 
			
		||||
	// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].
 | 
			
		||||
	// Also see [github.com/docker/docker/api/types.RequestPrivilegeFunc].
 | 
			
		||||
	PrivilegeFunc func(context.Context) (string, error)
 | 
			
		||||
	Platform      string
 | 
			
		||||
}
 | 
			
		||||
@@ -53,7 +53,7 @@ type PushOptions struct {
 | 
			
		||||
	// authentication header value in base64 encoded format, or an error if the
 | 
			
		||||
	// privilege request fails.
 | 
			
		||||
	//
 | 
			
		||||
	// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].
 | 
			
		||||
	// Also see [github.com/docker/docker/api/types.RequestPrivilegeFunc].
 | 
			
		||||
	PrivilegeFunc func(context.Context) (string, error)
 | 
			
		||||
 | 
			
		||||
	// Platform is an optional field that selects a specific platform to push
 | 
			
		||||
@@ -86,31 +86,3 @@ type RemoveOptions struct {
 | 
			
		||||
	Force         bool
 | 
			
		||||
	PruneChildren bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HistoryOptions holds parameters to get image history.
 | 
			
		||||
type HistoryOptions struct {
 | 
			
		||||
	// Platform from the manifest list to use for history.
 | 
			
		||||
	Platform *ocispec.Platform
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LoadOptions holds parameters to load images.
 | 
			
		||||
type LoadOptions struct {
 | 
			
		||||
	// Quiet suppresses progress output
 | 
			
		||||
	Quiet bool
 | 
			
		||||
 | 
			
		||||
	// Platforms selects the platforms to load if the image is a
 | 
			
		||||
	// multi-platform image and has multiple variants.
 | 
			
		||||
	Platforms []ocispec.Platform
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type InspectOptions struct {
 | 
			
		||||
	// Manifests returns the image manifests.
 | 
			
		||||
	Manifests bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SaveOptions holds parameters to save images.
 | 
			
		||||
type SaveOptions struct {
 | 
			
		||||
	// Platforms selects the platforms to save if the image is a
 | 
			
		||||
	// multi-platform image and has multiple variants.
 | 
			
		||||
	Platforms []ocispec.Platform
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/api/types/image/summary.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/api/types/image/summary.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,7 +1,5 @@
 | 
			
		||||
package image
 | 
			
		||||
 | 
			
		||||
import ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 | 
			
		||||
 | 
			
		||||
type Summary struct {
 | 
			
		||||
 | 
			
		||||
	// Number of containers using this image. Includes both stopped and running
 | 
			
		||||
@@ -44,13 +42,6 @@ type Summary struct {
 | 
			
		||||
	// Required: true
 | 
			
		||||
	ParentID string `json:"ParentId"`
 | 
			
		||||
 | 
			
		||||
	// Descriptor is the OCI descriptor of the image target.
 | 
			
		||||
	// It's only set if the daemon provides a multi-platform image store.
 | 
			
		||||
	//
 | 
			
		||||
	// WARNING: This is experimental and may change at any time without any backward
 | 
			
		||||
	// compatibility.
 | 
			
		||||
	Descriptor *ocispec.Descriptor `json:"Descriptor,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Manifests is a list of image manifests available in this image.  It
 | 
			
		||||
	// provides a more detailed view of the platform-specific image manifests or
 | 
			
		||||
	// other image-attached data like build attestations.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/docker/docker/api/types/mount/mount.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/docker/docker/api/types/mount/mount.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,8 +19,6 @@ const (
 | 
			
		||||
	TypeNamedPipe Type = "npipe"
 | 
			
		||||
	// TypeCluster is the type for Swarm Cluster Volumes.
 | 
			
		||||
	TypeCluster Type = "cluster"
 | 
			
		||||
	// TypeImage is the type for mounting another image's filesystem
 | 
			
		||||
	TypeImage Type = "image"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Mount represents a mount (volume).
 | 
			
		||||
@@ -36,7 +34,6 @@ type Mount struct {
 | 
			
		||||
 | 
			
		||||
	BindOptions    *BindOptions    `json:",omitempty"`
 | 
			
		||||
	VolumeOptions  *VolumeOptions  `json:",omitempty"`
 | 
			
		||||
	ImageOptions   *ImageOptions   `json:",omitempty"`
 | 
			
		||||
	TmpfsOptions   *TmpfsOptions   `json:",omitempty"`
 | 
			
		||||
	ClusterOptions *ClusterOptions `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
@@ -103,10 +100,6 @@ type VolumeOptions struct {
 | 
			
		||||
	DriverConfig *Driver           `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ImageOptions struct {
 | 
			
		||||
	Subpath string `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Driver represents a volume driver.
 | 
			
		||||
type Driver struct {
 | 
			
		||||
	Name    string            `json:",omitempty"`
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/docker/docker/api/types/network/endpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/docker/docker/api/types/network/endpoint.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,12 +19,6 @@ type EndpointSettings struct {
 | 
			
		||||
	// generated address).
 | 
			
		||||
	MacAddress string
 | 
			
		||||
	DriverOpts map[string]string
 | 
			
		||||
 | 
			
		||||
	// GwPriority determines which endpoint will provide the default gateway
 | 
			
		||||
	// for the container. The endpoint with the highest priority will be used.
 | 
			
		||||
	// If multiple endpoints have the same priority, they are lexicographically
 | 
			
		||||
	// sorted based on their network name, and the one that sorts first is picked.
 | 
			
		||||
	GwPriority int
 | 
			
		||||
	// Operational data
 | 
			
		||||
	NetworkID           string
 | 
			
		||||
	EndpointID          string
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/docker/api/types/network/network.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/docker/api/types/network/network.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,7 +33,6 @@ type CreateRequest struct {
 | 
			
		||||
type CreateOptions struct {
 | 
			
		||||
	Driver     string            // Driver is the driver-name used to create the network (e.g. `bridge`, `overlay`)
 | 
			
		||||
	Scope      string            // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level).
 | 
			
		||||
	EnableIPv4 *bool             `json:",omitempty"` // EnableIPv4 represents whether to enable IPv4.
 | 
			
		||||
	EnableIPv6 *bool             `json:",omitempty"` // EnableIPv6 represents whether to enable IPv6.
 | 
			
		||||
	IPAM       *IPAM             // IPAM is the network's IP Address Management.
 | 
			
		||||
	Internal   bool              // Internal represents if the network is used internal only.
 | 
			
		||||
@@ -77,8 +76,7 @@ type Inspect struct {
 | 
			
		||||
	Created    time.Time                   // Created is the time the network created
 | 
			
		||||
	Scope      string                      // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level)
 | 
			
		||||
	Driver     string                      // Driver is the Driver name used to create the network (e.g. `bridge`, `overlay`)
 | 
			
		||||
	EnableIPv4 bool                        // EnableIPv4 represents whether IPv4 is enabled
 | 
			
		||||
	EnableIPv6 bool                        // EnableIPv6 represents whether IPv6 is enabled
 | 
			
		||||
	EnableIPv6 bool                        // EnableIPv6 represents whether to enable IPv6
 | 
			
		||||
	IPAM       IPAM                        // IPAM is the network's IP Address Management
 | 
			
		||||
	Internal   bool                        // Internal represents if the network is used internal only
 | 
			
		||||
	Attachable bool                        // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package container
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
// This file was generated by the swagger tool.
 | 
			
		||||
// Editing this file might prove futile when you re-run the swagger generate command
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/github.com/docker/docker/api/types/registry/authconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/docker/docker/api/types/registry/authconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,29 +1,17 @@
 | 
			
		||||
package registry // import "github.com/docker/docker/api/types/registry"
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/base64"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// AuthHeader is the name of the header used to send encoded registry
 | 
			
		||||
// authorization credentials for registry operations (push/pull).
 | 
			
		||||
const AuthHeader = "X-Registry-Auth"
 | 
			
		||||
 | 
			
		||||
// RequestAuthConfig is a function interface that clients can supply
 | 
			
		||||
// to retry operations after getting an authorization error.
 | 
			
		||||
//
 | 
			
		||||
// The function must return the [AuthHeader] value ([AuthConfig]), encoded
 | 
			
		||||
// in base64url format ([RFC4648, section 5]), which can be decoded by
 | 
			
		||||
// [DecodeAuthConfig].
 | 
			
		||||
//
 | 
			
		||||
// It must return an error if the privilege request fails.
 | 
			
		||||
//
 | 
			
		||||
// [RFC4648, section 5]: https://tools.ietf.org/html/rfc4648#section-5
 | 
			
		||||
type RequestAuthConfig func(context.Context) (string, error)
 | 
			
		||||
 | 
			
		||||
// AuthConfig contains authorization information for connecting to a Registry.
 | 
			
		||||
type AuthConfig struct {
 | 
			
		||||
	Username string `json:"username,omitempty"`
 | 
			
		||||
@@ -97,7 +85,7 @@ func decodeAuthConfigFromReader(rdr io.Reader) (*AuthConfig, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func invalid(err error) error {
 | 
			
		||||
	return errInvalidParameter{fmt.Errorf("invalid X-Registry-Auth header: %w", err)}
 | 
			
		||||
	return errInvalidParameter{errors.Wrap(err, "invalid X-Registry-Auth header")}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type errInvalidParameter struct{ error }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/docker/docker/api/types/registry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/docker/docker/api/types/registry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,29 +9,11 @@ import (
 | 
			
		||||
 | 
			
		||||
// ServiceConfig stores daemon registry services configuration.
 | 
			
		||||
type ServiceConfig struct {
 | 
			
		||||
	AllowNondistributableArtifactsCIDRs     []*NetIPNet `json:"AllowNondistributableArtifactsCIDRs,omitempty"`     // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release.
 | 
			
		||||
	AllowNondistributableArtifactsHostnames []string    `json:"AllowNondistributableArtifactsHostnames,omitempty"` // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release.
 | 
			
		||||
 | 
			
		||||
	InsecureRegistryCIDRs []*NetIPNet           `json:"InsecureRegistryCIDRs"`
 | 
			
		||||
	IndexConfigs          map[string]*IndexInfo `json:"IndexConfigs"`
 | 
			
		||||
	Mirrors               []string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MarshalJSON implements a custom marshaler to include legacy fields
 | 
			
		||||
// in API responses.
 | 
			
		||||
func (sc ServiceConfig) MarshalJSON() ([]byte, error) {
 | 
			
		||||
	tmp := map[string]interface{}{
 | 
			
		||||
		"InsecureRegistryCIDRs": sc.InsecureRegistryCIDRs,
 | 
			
		||||
		"IndexConfigs":          sc.IndexConfigs,
 | 
			
		||||
		"Mirrors":               sc.Mirrors,
 | 
			
		||||
	}
 | 
			
		||||
	if sc.AllowNondistributableArtifactsCIDRs != nil {
 | 
			
		||||
		tmp["AllowNondistributableArtifactsCIDRs"] = nil
 | 
			
		||||
	}
 | 
			
		||||
	if sc.AllowNondistributableArtifactsHostnames != nil {
 | 
			
		||||
		tmp["AllowNondistributableArtifactsHostnames"] = nil
 | 
			
		||||
	}
 | 
			
		||||
	return json.Marshal(tmp)
 | 
			
		||||
	AllowNondistributableArtifactsCIDRs     []*NetIPNet
 | 
			
		||||
	AllowNondistributableArtifactsHostnames []string
 | 
			
		||||
	InsecureRegistryCIDRs                   []*NetIPNet           `json:"InsecureRegistryCIDRs"`
 | 
			
		||||
	IndexConfigs                            map[string]*IndexInfo `json:"IndexConfigs"`
 | 
			
		||||
	Mirrors                                 []string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetIPNet is the net.IPNet type, which can be marshalled and
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/api/types/registry/search.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/api/types/registry/search.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,12 +10,11 @@ import (
 | 
			
		||||
type SearchOptions struct {
 | 
			
		||||
	RegistryAuth string
 | 
			
		||||
 | 
			
		||||
	// PrivilegeFunc is a function that clients can supply to retry operations
 | 
			
		||||
	// after getting an authorization error. This function returns the registry
 | 
			
		||||
	// authentication header value in base64 encoded format, or an error if the
 | 
			
		||||
	// privilege request fails.
 | 
			
		||||
	// PrivilegeFunc is a [types.RequestPrivilegeFunc] the client can
 | 
			
		||||
	// supply to retry operations after getting an authorization error.
 | 
			
		||||
	//
 | 
			
		||||
	// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].
 | 
			
		||||
	// It must return the registry authentication header value in base64
 | 
			
		||||
	// format, or an error if the privilege request fails.
 | 
			
		||||
	PrivilegeFunc func(context.Context) (string, error)
 | 
			
		||||
	Filters       filters.Args
 | 
			
		||||
	Limit         int
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/docker/docker/api/types/system/info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/docker/docker/api/types/system/info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -29,8 +29,8 @@ type Info struct {
 | 
			
		||||
	CPUSet             bool
 | 
			
		||||
	PidsLimit          bool
 | 
			
		||||
	IPv4Forwarding     bool
 | 
			
		||||
	BridgeNfIptables   bool `json:"BridgeNfIptables"`  // Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release.
 | 
			
		||||
	BridgeNfIP6tables  bool `json:"BridgeNfIp6tables"` // Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release.
 | 
			
		||||
	BridgeNfIptables   bool
 | 
			
		||||
	BridgeNfIP6tables  bool `json:"BridgeNfIp6tables"`
 | 
			
		||||
	Debug              bool
 | 
			
		||||
	NFd                int
 | 
			
		||||
	OomKillDisable     bool
 | 
			
		||||
@@ -137,13 +137,8 @@ type PluginsInfo struct {
 | 
			
		||||
// Commit holds the Git-commit (SHA1) that a binary was built from, as reported
 | 
			
		||||
// in the version-string of external tools, such as containerd, or runC.
 | 
			
		||||
type Commit struct {
 | 
			
		||||
	// ID is the actual commit ID or version of external tool.
 | 
			
		||||
	ID string
 | 
			
		||||
 | 
			
		||||
	// Expected is the commit ID of external tool expected by dockerd as set at build time.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is no longer used in API v1.49, but kept for backward-compatibility with older API versions.
 | 
			
		||||
	Expected string
 | 
			
		||||
	ID       string // ID is the actual commit ID of external tool.
 | 
			
		||||
	Expected string // Expected is the commit ID of external tool expected by dockerd as set at build time.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkAddressPool is a temp struct used by [Info] struct.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										324
									
								
								vendor/github.com/docker/docker/api/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										324
									
								
								vendor/github.com/docker/docker/api/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,8 +6,11 @@ import (
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/filters"
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
	"github.com/docker/docker/api/types/mount"
 | 
			
		||||
	"github.com/docker/docker/api/types/network"
 | 
			
		||||
	"github.com/docker/docker/api/types/swarm"
 | 
			
		||||
	"github.com/docker/docker/api/types/volume"
 | 
			
		||||
	"github.com/docker/go-connections/nat"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -18,6 +21,145 @@ const (
 | 
			
		||||
	MediaTypeMultiplexedStream = "application/vnd.docker.multiplexed-stream"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RootFS returns Image's RootFS description including the layer IDs.
 | 
			
		||||
type RootFS struct {
 | 
			
		||||
	Type   string   `json:",omitempty"`
 | 
			
		||||
	Layers []string `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspect contains response of Engine API:
 | 
			
		||||
// GET "/images/{name:.*}/json"
 | 
			
		||||
type ImageInspect struct {
 | 
			
		||||
	// ID is the content-addressable ID of an image.
 | 
			
		||||
	//
 | 
			
		||||
	// This identifier is a content-addressable digest calculated from the
 | 
			
		||||
	// image's configuration (which includes the digests of layers used by
 | 
			
		||||
	// the image).
 | 
			
		||||
	//
 | 
			
		||||
	// Note that this digest differs from the `RepoDigests` below, which
 | 
			
		||||
	// holds digests of image manifests that reference the image.
 | 
			
		||||
	ID string `json:"Id"`
 | 
			
		||||
 | 
			
		||||
	// RepoTags is a list of image names/tags in the local image cache that
 | 
			
		||||
	// reference this image.
 | 
			
		||||
	//
 | 
			
		||||
	// Multiple image tags can refer to the same image, and this list may be
 | 
			
		||||
	// empty if no tags reference the image, in which case the image is
 | 
			
		||||
	// "untagged", in which case it can still be referenced by its ID.
 | 
			
		||||
	RepoTags []string
 | 
			
		||||
 | 
			
		||||
	// RepoDigests is a list of content-addressable digests of locally available
 | 
			
		||||
	// image manifests that the image is referenced from. Multiple manifests can
 | 
			
		||||
	// refer to the same image.
 | 
			
		||||
	//
 | 
			
		||||
	// These digests are usually only available if the image was either pulled
 | 
			
		||||
	// from a registry, or if the image was pushed to a registry, which is when
 | 
			
		||||
	// the manifest is generated and its digest calculated.
 | 
			
		||||
	RepoDigests []string
 | 
			
		||||
 | 
			
		||||
	// Parent is the ID of the parent image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty and
 | 
			
		||||
	// is only set for images that were built/created locally. This field
 | 
			
		||||
	// is empty if the image was pulled from an image registry.
 | 
			
		||||
	Parent string
 | 
			
		||||
 | 
			
		||||
	// Comment is an optional message that can be set when committing or
 | 
			
		||||
	// importing the image.
 | 
			
		||||
	Comment string
 | 
			
		||||
 | 
			
		||||
	// Created is the date and time at which the image was created, formatted in
 | 
			
		||||
	// RFC 3339 nano-seconds (time.RFC3339Nano).
 | 
			
		||||
	//
 | 
			
		||||
	// This information is only available if present in the image,
 | 
			
		||||
	// and omitted otherwise.
 | 
			
		||||
	Created string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Container is the ID of the container that was used to create the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.
 | 
			
		||||
	Container string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// ContainerConfig is an optional field containing the configuration of the
 | 
			
		||||
	// container that was last committed when creating the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Previous versions of Docker builder used this field to store build cache,
 | 
			
		||||
	// and it is not in active use anymore.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.
 | 
			
		||||
	ContainerConfig *container.Config `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// DockerVersion is the version of Docker that was used to build the image.
 | 
			
		||||
	//
 | 
			
		||||
	// Depending on how the image was created, this field may be empty.
 | 
			
		||||
	DockerVersion string
 | 
			
		||||
 | 
			
		||||
	// Author is the name of the author that was specified when committing the
 | 
			
		||||
	// image, or as specified through MAINTAINER (deprecated) in the Dockerfile.
 | 
			
		||||
	Author string
 | 
			
		||||
	Config *container.Config
 | 
			
		||||
 | 
			
		||||
	// Architecture is the hardware CPU architecture that the image runs on.
 | 
			
		||||
	Architecture string
 | 
			
		||||
 | 
			
		||||
	// Variant is the CPU architecture variant (presently ARM-only).
 | 
			
		||||
	Variant string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// OS is the Operating System the image is built to run on.
 | 
			
		||||
	Os string
 | 
			
		||||
 | 
			
		||||
	// OsVersion is the version of the Operating System the image is built to
 | 
			
		||||
	// run on (especially for Windows).
 | 
			
		||||
	OsVersion string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Size is the total size of the image including all layers it is composed of.
 | 
			
		||||
	Size int64
 | 
			
		||||
 | 
			
		||||
	// VirtualSize is the total size of the image including all layers it is
 | 
			
		||||
	// composed of.
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.
 | 
			
		||||
	VirtualSize int64 `json:"VirtualSize,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// GraphDriver holds information about the storage driver used to store the
 | 
			
		||||
	// container's and image's filesystem.
 | 
			
		||||
	GraphDriver GraphDriverData
 | 
			
		||||
 | 
			
		||||
	// RootFS contains information about the image's RootFS, including the
 | 
			
		||||
	// layer IDs.
 | 
			
		||||
	RootFS RootFS
 | 
			
		||||
 | 
			
		||||
	// Metadata of the image in the local cache.
 | 
			
		||||
	//
 | 
			
		||||
	// This information is local to the daemon, and not part of the image itself.
 | 
			
		||||
	Metadata image.Metadata
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Container contains response of Engine API:
 | 
			
		||||
// GET "/containers/json"
 | 
			
		||||
type Container struct {
 | 
			
		||||
	ID         string `json:"Id"`
 | 
			
		||||
	Names      []string
 | 
			
		||||
	Image      string
 | 
			
		||||
	ImageID    string
 | 
			
		||||
	Command    string
 | 
			
		||||
	Created    int64
 | 
			
		||||
	Ports      []Port
 | 
			
		||||
	SizeRw     int64 `json:",omitempty"`
 | 
			
		||||
	SizeRootFs int64 `json:",omitempty"`
 | 
			
		||||
	Labels     map[string]string
 | 
			
		||||
	State      string
 | 
			
		||||
	Status     string
 | 
			
		||||
	HostConfig struct {
 | 
			
		||||
		NetworkMode string            `json:",omitempty"`
 | 
			
		||||
		Annotations map[string]string `json:",omitempty"`
 | 
			
		||||
	}
 | 
			
		||||
	NetworkSettings *SummaryNetworkSettings
 | 
			
		||||
	Mounts          []MountPoint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ping contains response of Engine API:
 | 
			
		||||
// GET "/_ping"
 | 
			
		||||
type Ping struct {
 | 
			
		||||
@@ -63,6 +205,176 @@ type Version struct {
 | 
			
		||||
	BuildTime     string `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HealthcheckResult stores information about a single run of a healthcheck probe
 | 
			
		||||
type HealthcheckResult struct {
 | 
			
		||||
	Start    time.Time // Start is the time this check started
 | 
			
		||||
	End      time.Time // End is the time this check ended
 | 
			
		||||
	ExitCode int       // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe
 | 
			
		||||
	Output   string    // Output from last check
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Health states
 | 
			
		||||
const (
 | 
			
		||||
	NoHealthcheck = "none"      // Indicates there is no healthcheck
 | 
			
		||||
	Starting      = "starting"  // Starting indicates that the container is not yet ready
 | 
			
		||||
	Healthy       = "healthy"   // Healthy indicates that the container is running correctly
 | 
			
		||||
	Unhealthy     = "unhealthy" // Unhealthy indicates that the container has a problem
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Health stores information about the container's healthcheck results
 | 
			
		||||
type Health struct {
 | 
			
		||||
	Status        string               // Status is one of Starting, Healthy or Unhealthy
 | 
			
		||||
	FailingStreak int                  // FailingStreak is the number of consecutive failures
 | 
			
		||||
	Log           []*HealthcheckResult // Log contains the last few results (oldest first)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerState stores container's running state
 | 
			
		||||
// it's part of ContainerJSONBase and will return by "inspect" command
 | 
			
		||||
type ContainerState struct {
 | 
			
		||||
	Status     string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead"
 | 
			
		||||
	Running    bool
 | 
			
		||||
	Paused     bool
 | 
			
		||||
	Restarting bool
 | 
			
		||||
	OOMKilled  bool
 | 
			
		||||
	Dead       bool
 | 
			
		||||
	Pid        int
 | 
			
		||||
	ExitCode   int
 | 
			
		||||
	Error      string
 | 
			
		||||
	StartedAt  string
 | 
			
		||||
	FinishedAt string
 | 
			
		||||
	Health     *Health `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerJSONBase contains response of Engine API:
 | 
			
		||||
// GET "/containers/{name:.*}/json"
 | 
			
		||||
type ContainerJSONBase struct {
 | 
			
		||||
	ID              string `json:"Id"`
 | 
			
		||||
	Created         string
 | 
			
		||||
	Path            string
 | 
			
		||||
	Args            []string
 | 
			
		||||
	State           *ContainerState
 | 
			
		||||
	Image           string
 | 
			
		||||
	ResolvConfPath  string
 | 
			
		||||
	HostnamePath    string
 | 
			
		||||
	HostsPath       string
 | 
			
		||||
	LogPath         string
 | 
			
		||||
	Node            *ContainerNode `json:",omitempty"` // Deprecated: Node was only propagated by Docker Swarm standalone API. It sill be removed in the next release.
 | 
			
		||||
	Name            string
 | 
			
		||||
	RestartCount    int
 | 
			
		||||
	Driver          string
 | 
			
		||||
	Platform        string
 | 
			
		||||
	MountLabel      string
 | 
			
		||||
	ProcessLabel    string
 | 
			
		||||
	AppArmorProfile string
 | 
			
		||||
	ExecIDs         []string
 | 
			
		||||
	HostConfig      *container.HostConfig
 | 
			
		||||
	GraphDriver     GraphDriverData
 | 
			
		||||
	SizeRw          *int64 `json:",omitempty"`
 | 
			
		||||
	SizeRootFs      *int64 `json:",omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerJSON is newly used struct along with MountPoint
 | 
			
		||||
type ContainerJSON struct {
 | 
			
		||||
	*ContainerJSONBase
 | 
			
		||||
	Mounts          []MountPoint
 | 
			
		||||
	Config          *container.Config
 | 
			
		||||
	NetworkSettings *NetworkSettings
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkSettings exposes the network settings in the api
 | 
			
		||||
type NetworkSettings struct {
 | 
			
		||||
	NetworkSettingsBase
 | 
			
		||||
	DefaultNetworkSettings
 | 
			
		||||
	Networks map[string]*network.EndpointSettings
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SummaryNetworkSettings provides a summary of container's networks
 | 
			
		||||
// in /containers/json
 | 
			
		||||
type SummaryNetworkSettings struct {
 | 
			
		||||
	Networks map[string]*network.EndpointSettings
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NetworkSettingsBase holds networking state for a container when inspecting it.
 | 
			
		||||
type NetworkSettingsBase struct {
 | 
			
		||||
	Bridge     string      // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag.
 | 
			
		||||
	SandboxID  string      // SandboxID uniquely represents a container's network stack
 | 
			
		||||
	SandboxKey string      // SandboxKey identifies the sandbox
 | 
			
		||||
	Ports      nat.PortMap // Ports is a collection of PortBinding indexed by Port
 | 
			
		||||
 | 
			
		||||
	// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	HairpinMode bool
 | 
			
		||||
	// LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	LinkLocalIPv6Address string
 | 
			
		||||
	// LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address
 | 
			
		||||
	//
 | 
			
		||||
	// Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	LinkLocalIPv6PrefixLen int
 | 
			
		||||
	SecondaryIPAddresses   []network.Address // Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
	SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DefaultNetworkSettings holds network information
 | 
			
		||||
// during the 2 release deprecation period.
 | 
			
		||||
// It will be removed in Docker 1.11.
 | 
			
		||||
type DefaultNetworkSettings struct {
 | 
			
		||||
	EndpointID          string // EndpointID uniquely represents a service endpoint in a Sandbox
 | 
			
		||||
	Gateway             string // Gateway holds the gateway address for the network
 | 
			
		||||
	GlobalIPv6Address   string // GlobalIPv6Address holds network's global IPv6 address
 | 
			
		||||
	GlobalIPv6PrefixLen int    // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address
 | 
			
		||||
	IPAddress           string // IPAddress holds the IPv4 address for the network
 | 
			
		||||
	IPPrefixLen         int    // IPPrefixLen represents mask length of network's IPv4 address
 | 
			
		||||
	IPv6Gateway         string // IPv6Gateway holds gateway address specific for IPv6
 | 
			
		||||
	MacAddress          string // MacAddress holds the MAC address for the network
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MountPoint represents a mount point configuration inside the container.
 | 
			
		||||
// This is used for reporting the mountpoints in use by a container.
 | 
			
		||||
type MountPoint struct {
 | 
			
		||||
	// Type is the type of mount, see `Type<foo>` definitions in
 | 
			
		||||
	// github.com/docker/docker/api/types/mount.Type
 | 
			
		||||
	Type mount.Type `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Name is the name reference to the underlying data defined by `Source`
 | 
			
		||||
	// e.g., the volume name.
 | 
			
		||||
	Name string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Source is the source location of the mount.
 | 
			
		||||
	//
 | 
			
		||||
	// For volumes, this contains the storage location of the volume (within
 | 
			
		||||
	// `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains
 | 
			
		||||
	// the source (host) part of the bind-mount. For `tmpfs` mount points, this
 | 
			
		||||
	// field is empty.
 | 
			
		||||
	Source string
 | 
			
		||||
 | 
			
		||||
	// Destination is the path relative to the container root (`/`) where the
 | 
			
		||||
	// Source is mounted inside the container.
 | 
			
		||||
	Destination string
 | 
			
		||||
 | 
			
		||||
	// Driver is the volume driver used to create the volume (if it is a volume).
 | 
			
		||||
	Driver string `json:",omitempty"`
 | 
			
		||||
 | 
			
		||||
	// Mode is a comma separated list of options supplied by the user when
 | 
			
		||||
	// creating the bind/volume mount.
 | 
			
		||||
	//
 | 
			
		||||
	// The default is platform-specific (`"z"` on Linux, empty on Windows).
 | 
			
		||||
	Mode string
 | 
			
		||||
 | 
			
		||||
	// RW indicates whether the mount is mounted writable (read-write).
 | 
			
		||||
	RW bool
 | 
			
		||||
 | 
			
		||||
	// Propagation describes how mounts are propagated from the host into the
 | 
			
		||||
	// mount point, and vice-versa. Refer to the Linux kernel documentation
 | 
			
		||||
	// for details:
 | 
			
		||||
	// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt
 | 
			
		||||
	//
 | 
			
		||||
	// This field is not used on Windows.
 | 
			
		||||
	Propagation mount.Propagation
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DiskUsageObject represents an object type used for disk usage query filtering.
 | 
			
		||||
type DiskUsageObject string
 | 
			
		||||
 | 
			
		||||
@@ -89,7 +401,7 @@ type DiskUsageOptions struct {
 | 
			
		||||
type DiskUsage struct {
 | 
			
		||||
	LayersSize  int64
 | 
			
		||||
	Images      []*image.Summary
 | 
			
		||||
	Containers  []*container.Summary
 | 
			
		||||
	Containers  []*Container
 | 
			
		||||
	Volumes     []*volume.Volume
 | 
			
		||||
	BuildCache  []*BuildCache
 | 
			
		||||
	BuilderSize int64 `json:",omitempty"` // Deprecated: deprecated in API 1.38, and no longer used since API 1.40.
 | 
			
		||||
@@ -169,11 +481,9 @@ type BuildCache struct {
 | 
			
		||||
 | 
			
		||||
// BuildCachePruneOptions hold parameters to prune the build cache
 | 
			
		||||
type BuildCachePruneOptions struct {
 | 
			
		||||
	All           bool
 | 
			
		||||
	ReservedSpace int64
 | 
			
		||||
	MaxUsedSpace  int64
 | 
			
		||||
	MinFreeSpace  int64
 | 
			
		||||
	Filters       filters.Args
 | 
			
		||||
	All         bool
 | 
			
		||||
	KeepStorage int64
 | 
			
		||||
	Filters     filters.Args
 | 
			
		||||
 | 
			
		||||
	KeepStorage int64 // Deprecated: deprecated in API 1.48.
 | 
			
		||||
	// FIXME(thaJeztah): add new options; see https://github.com/moby/moby/issues/48639
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										243
									
								
								vendor/github.com/docker/docker/api/types/types_deprecated.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										243
									
								
								vendor/github.com/docker/docker/api/types/types_deprecated.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,109 +1,210 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/events"
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
	"github.com/docker/docker/api/types/storage"
 | 
			
		||||
	"github.com/docker/docker/api/types/network"
 | 
			
		||||
	"github.com/docker/docker/api/types/registry"
 | 
			
		||||
	"github.com/docker/docker/api/types/volume"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ContainerJSONBase contains response of Engine API GET "/containers/{name:.*}/json"
 | 
			
		||||
// for API version 1.18 and older.
 | 
			
		||||
// ImagesPruneReport contains the response for Engine API:
 | 
			
		||||
// POST "/images/prune"
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.InspectResponse] or [container.ContainerJSONBase]. It will be removed in the next release.
 | 
			
		||||
type ContainerJSONBase = container.ContainerJSONBase
 | 
			
		||||
// Deprecated: use [image.PruneReport].
 | 
			
		||||
type ImagesPruneReport = image.PruneReport
 | 
			
		||||
 | 
			
		||||
// ContainerJSON is the response for the GET "/containers/{name:.*}/json"
 | 
			
		||||
// endpoint.
 | 
			
		||||
// VolumesPruneReport contains the response for Engine API:
 | 
			
		||||
// POST "/volumes/prune".
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.InspectResponse]. It will be removed in the next release.
 | 
			
		||||
type ContainerJSON = container.InspectResponse
 | 
			
		||||
// Deprecated: use [volume.PruneReport].
 | 
			
		||||
type VolumesPruneReport = volume.PruneReport
 | 
			
		||||
 | 
			
		||||
// Container contains response of Engine API:
 | 
			
		||||
// GET "/containers/json"
 | 
			
		||||
// NetworkCreateRequest is the request message sent to the server for network create call.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.Summary].
 | 
			
		||||
type Container = container.Summary
 | 
			
		||||
// Deprecated: use [network.CreateRequest].
 | 
			
		||||
type NetworkCreateRequest = network.CreateRequest
 | 
			
		||||
 | 
			
		||||
// ContainerState stores container's running state
 | 
			
		||||
// NetworkCreate is the expected body of the "create network" http request message
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.State].
 | 
			
		||||
type ContainerState = container.State
 | 
			
		||||
// Deprecated: use [network.CreateOptions].
 | 
			
		||||
type NetworkCreate = network.CreateOptions
 | 
			
		||||
 | 
			
		||||
// NetworkSettings exposes the network settings in the api.
 | 
			
		||||
// NetworkListOptions holds parameters to filter the list of networks with.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.NetworkSettings].
 | 
			
		||||
type NetworkSettings = container.NetworkSettings
 | 
			
		||||
// Deprecated: use [network.ListOptions].
 | 
			
		||||
type NetworkListOptions = network.ListOptions
 | 
			
		||||
 | 
			
		||||
// NetworkSettingsBase holds networking state for a container when inspecting it.
 | 
			
		||||
// NetworkCreateResponse is the response message sent by the server for network create call.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.NetworkSettingsBase].
 | 
			
		||||
type NetworkSettingsBase = container.NetworkSettingsBase
 | 
			
		||||
// Deprecated: use [network.CreateResponse].
 | 
			
		||||
type NetworkCreateResponse = network.CreateResponse
 | 
			
		||||
 | 
			
		||||
// DefaultNetworkSettings holds network information
 | 
			
		||||
// during the 2 release deprecation period.
 | 
			
		||||
// It will be removed in Docker 1.11.
 | 
			
		||||
// NetworkInspectOptions holds parameters to inspect network.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.DefaultNetworkSettings].
 | 
			
		||||
type DefaultNetworkSettings = container.DefaultNetworkSettings
 | 
			
		||||
// Deprecated: use [network.InspectOptions].
 | 
			
		||||
type NetworkInspectOptions = network.InspectOptions
 | 
			
		||||
 | 
			
		||||
// SummaryNetworkSettings provides a summary of container's networks
 | 
			
		||||
// in /containers/json.
 | 
			
		||||
// NetworkConnect represents the data to be used to connect a container to the network
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.NetworkSettingsSummary].
 | 
			
		||||
type SummaryNetworkSettings = container.NetworkSettingsSummary
 | 
			
		||||
// Deprecated: use [network.ConnectOptions].
 | 
			
		||||
type NetworkConnect = network.ConnectOptions
 | 
			
		||||
 | 
			
		||||
// Health states
 | 
			
		||||
const (
 | 
			
		||||
	NoHealthcheck = container.NoHealthcheck // Deprecated: use [container.NoHealthcheck].
 | 
			
		||||
	Starting      = container.Starting      // Deprecated: use [container.Starting].
 | 
			
		||||
	Healthy       = container.Healthy       // Deprecated: use [container.Healthy].
 | 
			
		||||
	Unhealthy     = container.Unhealthy     // Deprecated: use [container.Unhealthy].
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Health stores information about the container's healthcheck results.
 | 
			
		||||
// NetworkDisconnect represents the data to be used to disconnect a container from the network
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.Health].
 | 
			
		||||
type Health = container.Health
 | 
			
		||||
// Deprecated: use [network.DisconnectOptions].
 | 
			
		||||
type NetworkDisconnect = network.DisconnectOptions
 | 
			
		||||
 | 
			
		||||
// HealthcheckResult stores information about a single run of a healthcheck probe.
 | 
			
		||||
// EndpointResource contains network resources allocated and used for a container in a network.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.HealthcheckResult].
 | 
			
		||||
type HealthcheckResult = container.HealthcheckResult
 | 
			
		||||
// Deprecated: use [network.EndpointResource].
 | 
			
		||||
type EndpointResource = network.EndpointResource
 | 
			
		||||
 | 
			
		||||
// MountPoint represents a mount point configuration inside the container.
 | 
			
		||||
// This is used for reporting the mountpoints in use by a container.
 | 
			
		||||
// NetworkResource is the body of the "get network" http response message/
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.MountPoint].
 | 
			
		||||
type MountPoint = container.MountPoint
 | 
			
		||||
// Deprecated: use [network.Inspect] or [network.Summary] (for list operations).
 | 
			
		||||
type NetworkResource = network.Inspect
 | 
			
		||||
 | 
			
		||||
// Port An open port on a container
 | 
			
		||||
// NetworksPruneReport contains the response for Engine API:
 | 
			
		||||
// POST "/networks/prune"
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.Port].
 | 
			
		||||
type Port = container.Port
 | 
			
		||||
// Deprecated: use [network.PruneReport].
 | 
			
		||||
type NetworksPruneReport = network.PruneReport
 | 
			
		||||
 | 
			
		||||
// GraphDriverData Information about the storage driver used to store the container's and
 | 
			
		||||
// image's filesystem.
 | 
			
		||||
// ExecConfig is a small subset of the Config struct that holds the configuration
 | 
			
		||||
// for the exec feature of docker.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [storage.DriverData].
 | 
			
		||||
type GraphDriverData = storage.DriverData
 | 
			
		||||
// Deprecated: use [container.ExecOptions].
 | 
			
		||||
type ExecConfig = container.ExecOptions
 | 
			
		||||
 | 
			
		||||
// RootFS returns Image's RootFS description including the layer IDs.
 | 
			
		||||
// ExecStartCheck is a temp struct used by execStart
 | 
			
		||||
// Config fields is part of ExecConfig in runconfig package
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [image.RootFS].
 | 
			
		||||
type RootFS = image.RootFS
 | 
			
		||||
// Deprecated: use [container.ExecStartOptions] or [container.ExecAttachOptions].
 | 
			
		||||
type ExecStartCheck = container.ExecStartOptions
 | 
			
		||||
 | 
			
		||||
// ImageInspect contains response of Engine API:
 | 
			
		||||
// GET "/images/{name:.*}/json"
 | 
			
		||||
// ContainerExecInspect holds information returned by exec inspect.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [image.InspectResponse].
 | 
			
		||||
type ImageInspect = image.InspectResponse
 | 
			
		||||
// Deprecated: use [container.ExecInspect].
 | 
			
		||||
type ContainerExecInspect = container.ExecInspect
 | 
			
		||||
 | 
			
		||||
// RequestPrivilegeFunc is a function interface that clients can supply to
 | 
			
		||||
// retry operations after getting an authorization error.
 | 
			
		||||
// This function returns the registry authentication header value in base64
 | 
			
		||||
// format, or an error if the privilege request fails.
 | 
			
		||||
// ContainersPruneReport contains the response for Engine API:
 | 
			
		||||
// POST "/containers/prune"
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: moved to [github.com/docker/docker/api/types/registry.RequestAuthConfig].
 | 
			
		||||
type RequestPrivilegeFunc func(context.Context) (string, error)
 | 
			
		||||
// Deprecated: use [container.PruneReport].
 | 
			
		||||
type ContainersPruneReport = container.PruneReport
 | 
			
		||||
 | 
			
		||||
// ContainerPathStat is used to encode the header from
 | 
			
		||||
// GET "/containers/{name:.*}/archive"
 | 
			
		||||
// "Name" is the file or directory name.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.PathStat].
 | 
			
		||||
type ContainerPathStat = container.PathStat
 | 
			
		||||
 | 
			
		||||
// CopyToContainerOptions holds information
 | 
			
		||||
// about files to copy into a container.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.CopyToContainerOptions],
 | 
			
		||||
type CopyToContainerOptions = container.CopyToContainerOptions
 | 
			
		||||
 | 
			
		||||
// ContainerStats contains response of Engine API:
 | 
			
		||||
// GET "/stats"
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.StatsResponseReader].
 | 
			
		||||
type ContainerStats = container.StatsResponseReader
 | 
			
		||||
 | 
			
		||||
// ThrottlingData stores CPU throttling stats of one running container.
 | 
			
		||||
// Not used on Windows.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.ThrottlingData].
 | 
			
		||||
type ThrottlingData = container.ThrottlingData
 | 
			
		||||
 | 
			
		||||
// CPUUsage stores All CPU stats aggregated since container inception.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.CPUUsage].
 | 
			
		||||
type CPUUsage = container.CPUUsage
 | 
			
		||||
 | 
			
		||||
// CPUStats aggregates and wraps all CPU related info of container
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.CPUStats].
 | 
			
		||||
type CPUStats = container.CPUStats
 | 
			
		||||
 | 
			
		||||
// MemoryStats aggregates all memory stats since container inception on Linux.
 | 
			
		||||
// Windows returns stats for commit and private working set only.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.MemoryStats].
 | 
			
		||||
type MemoryStats = container.MemoryStats
 | 
			
		||||
 | 
			
		||||
// BlkioStatEntry is one small entity to store a piece of Blkio stats
 | 
			
		||||
// Not used on Windows.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.BlkioStatEntry].
 | 
			
		||||
type BlkioStatEntry = container.BlkioStatEntry
 | 
			
		||||
 | 
			
		||||
// BlkioStats stores All IO service stats for data read and write.
 | 
			
		||||
// This is a Linux specific structure as the differences between expressing
 | 
			
		||||
// block I/O on Windows and Linux are sufficiently significant to make
 | 
			
		||||
// little sense attempting to morph into a combined structure.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.BlkioStats].
 | 
			
		||||
type BlkioStats = container.BlkioStats
 | 
			
		||||
 | 
			
		||||
// StorageStats is the disk I/O stats for read/write on Windows.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.StorageStats].
 | 
			
		||||
type StorageStats = container.StorageStats
 | 
			
		||||
 | 
			
		||||
// NetworkStats aggregates the network stats of one container
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.NetworkStats].
 | 
			
		||||
type NetworkStats = container.NetworkStats
 | 
			
		||||
 | 
			
		||||
// PidsStats contains the stats of a container's pids
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.PidsStats].
 | 
			
		||||
type PidsStats = container.PidsStats
 | 
			
		||||
 | 
			
		||||
// Stats is Ultimate struct aggregating all types of stats of one container
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.Stats].
 | 
			
		||||
type Stats = container.Stats
 | 
			
		||||
 | 
			
		||||
// StatsJSON is newly used Networks
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [container.StatsResponse].
 | 
			
		||||
type StatsJSON = container.StatsResponse
 | 
			
		||||
 | 
			
		||||
// EventsOptions holds parameters to filter events with.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [events.ListOptions].
 | 
			
		||||
type EventsOptions = events.ListOptions
 | 
			
		||||
 | 
			
		||||
// ImageSearchOptions holds parameters to search images with.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [registry.SearchOptions].
 | 
			
		||||
type ImageSearchOptions = registry.SearchOptions
 | 
			
		||||
 | 
			
		||||
// ImageImportSource holds source information for ImageImport
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [image.ImportSource].
 | 
			
		||||
type ImageImportSource image.ImportSource
 | 
			
		||||
 | 
			
		||||
// ImageLoadResponse returns information to the client about a load process.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [image.LoadResponse].
 | 
			
		||||
type ImageLoadResponse = image.LoadResponse
 | 
			
		||||
 | 
			
		||||
// ContainerNode stores information about the node that a container
 | 
			
		||||
// is running on.  It's only used by the Docker Swarm standalone API.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: ContainerNode was used for the classic Docker Swarm standalone API. It will be removed in the next release.
 | 
			
		||||
type ContainerNode struct {
 | 
			
		||||
	ID        string
 | 
			
		||||
	IPAddress string `json:"IP"`
 | 
			
		||||
	Addr      string
 | 
			
		||||
	Name      string
 | 
			
		||||
	Cpus      int
 | 
			
		||||
	Memory    int64
 | 
			
		||||
	Labels    map[string]string
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								vendor/github.com/docker/docker/client/build_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/docker/docker/client/build_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,23 +17,13 @@ func (cli *Client) BuildCachePrune(ctx context.Context, opts types.BuildCachePru
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	report := types.BuildCachePruneReport{}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if opts.All {
 | 
			
		||||
		query.Set("all", "1")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if opts.KeepStorage != 0 {
 | 
			
		||||
		query.Set("keep-storage", strconv.Itoa(int(opts.KeepStorage)))
 | 
			
		||||
	}
 | 
			
		||||
	if opts.ReservedSpace != 0 {
 | 
			
		||||
		query.Set("reserved-space", strconv.Itoa(int(opts.ReservedSpace)))
 | 
			
		||||
	}
 | 
			
		||||
	if opts.MaxUsedSpace != 0 {
 | 
			
		||||
		query.Set("max-used-space", strconv.Itoa(int(opts.MaxUsedSpace)))
 | 
			
		||||
	}
 | 
			
		||||
	if opts.MinFreeSpace != 0 {
 | 
			
		||||
		query.Set("min-free-space", strconv.Itoa(int(opts.MinFreeSpace)))
 | 
			
		||||
	}
 | 
			
		||||
	query.Set("keep-storage", strconv.Itoa(int(opts.KeepStorage)))
 | 
			
		||||
	f, err := filters.ToJSON(opts.Filters)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, errors.Wrap(err, "prune could not marshal filters option")
 | 
			
		||||
@@ -47,7 +37,6 @@ func (cli *Client) BuildCachePrune(ctx context.Context, opts types.BuildCachePru
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	report := types.BuildCachePruneReport{}
 | 
			
		||||
	if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil {
 | 
			
		||||
		return nil, errors.Wrap(err, "error retrieving disk usage")
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/checkpoint_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/checkpoint_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,13 +7,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CheckpointCreate creates a checkpoint from the given container with the given name
 | 
			
		||||
func (cli *Client) CheckpointCreate(ctx context.Context, containerID string, options checkpoint.CreateOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+containerID+"/checkpoints", nil, options, nil)
 | 
			
		||||
func (cli *Client) CheckpointCreate(ctx context.Context, container string, options checkpoint.CreateOptions) error {
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+container+"/checkpoints", nil, options, nil)
 | 
			
		||||
	ensureReaderClosed(resp)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/checkpoint_delete.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/checkpoint_delete.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,11 +9,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// CheckpointDelete deletes the checkpoint with the given name from the given container
 | 
			
		||||
func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options checkpoint.DeleteOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.CheckpointDir != "" {
 | 
			
		||||
		query.Set("dir", options.CheckpointDir)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/docker/docker/client/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/docker/docker/client/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -99,9 +99,6 @@ const DummyHost = "api.moby.localhost"
 | 
			
		||||
// recent version before negotiation was introduced.
 | 
			
		||||
const fallbackAPIVersion = "1.24"
 | 
			
		||||
 | 
			
		||||
// Ensure that Client always implements APIClient.
 | 
			
		||||
var _ APIClient = &Client{}
 | 
			
		||||
 | 
			
		||||
// Client is the API client that performs all operations
 | 
			
		||||
// against a docker server.
 | 
			
		||||
type Client struct {
 | 
			
		||||
@@ -307,7 +304,8 @@ func (cli *Client) getAPIPath(ctx context.Context, p string, query url.Values) s
 | 
			
		||||
	var apiPath string
 | 
			
		||||
	_ = cli.checkVersion(ctx)
 | 
			
		||||
	if cli.version != "" {
 | 
			
		||||
		apiPath = path.Join(cli.basePath, "/v"+strings.TrimPrefix(cli.version, "v"), p)
 | 
			
		||||
		v := strings.TrimPrefix(cli.version, "v")
 | 
			
		||||
		apiPath = path.Join(cli.basePath, "/v"+v, p)
 | 
			
		||||
	} else {
 | 
			
		||||
		apiPath = path.Join(cli.basePath, p)
 | 
			
		||||
	}
 | 
			
		||||
@@ -452,10 +450,6 @@ func (cli *Client) dialerFromTransport() func(context.Context, string, string) (
 | 
			
		||||
//
 | 
			
		||||
// ["docker dial-stdio"]: https://github.com/docker/cli/pull/1014
 | 
			
		||||
func (cli *Client) Dialer() func(context.Context) (net.Conn, error) {
 | 
			
		||||
	return cli.dialer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) dialer() func(context.Context) (net.Conn, error) {
 | 
			
		||||
	return func(ctx context.Context) (net.Conn, error) {
 | 
			
		||||
		if dialFn := cli.dialerFromTransport(); dialFn != nil {
 | 
			
		||||
			return dialFn(ctx, cli.proto, cli.addr)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/config_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/config_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,9 +11,8 @@ import (
 | 
			
		||||
 | 
			
		||||
// ConfigInspectWithRaw returns the config information with raw data
 | 
			
		||||
func (cli *Client) ConfigInspectWithRaw(ctx context.Context, id string) (swarm.Config, []byte, error) {
 | 
			
		||||
	id, err := trimID("contig", id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return swarm.Config{}, nil, err
 | 
			
		||||
	if id == "" {
 | 
			
		||||
		return swarm.Config{}, nil, objectNotFoundError{object: "config", id: id}
 | 
			
		||||
	}
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.30", "config inspect"); err != nil {
 | 
			
		||||
		return swarm.Config{}, nil, err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/docker/client/config_remove.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/docker/client/config_remove.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,10 +4,6 @@ import "context"
 | 
			
		||||
 | 
			
		||||
// ConfigRemove removes a config.
 | 
			
		||||
func (cli *Client) ConfigRemove(ctx context.Context, id string) error {
 | 
			
		||||
	id, err := trimID("config", id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.30", "config remove"); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/docker/client/config_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/docker/client/config_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,10 +9,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// ConfigUpdate attempts to update a config
 | 
			
		||||
func (cli *Client) ConfigUpdate(ctx context.Context, id string, version swarm.Version, config swarm.ConfigSpec) error {
 | 
			
		||||
	id, err := trimID("config", id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.30", "config update"); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/container_attach.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/container_attach.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,12 +33,7 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this
 | 
			
		||||
// stream.
 | 
			
		||||
func (cli *Client) ContainerAttach(ctx context.Context, containerID string, options container.AttachOptions) (types.HijackedResponse, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.HijackedResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) ContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.Stream {
 | 
			
		||||
		query.Set("stream", "1")
 | 
			
		||||
@@ -59,7 +54,7 @@ func (cli *Client) ContainerAttach(ctx context.Context, containerID string, opti
 | 
			
		||||
		query.Set("logs", "1")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return cli.postHijacked(ctx, "/containers/"+containerID+"/attach", query, nil, http.Header{
 | 
			
		||||
	return cli.postHijacked(ctx, "/containers/"+container+"/attach", query, nil, http.Header{
 | 
			
		||||
		"Content-Type": {"text/plain"},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/container_commit.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/container_commit.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,12 +12,7 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ContainerCommit applies changes to a container and creates a new tagged image.
 | 
			
		||||
func (cli *Client) ContainerCommit(ctx context.Context, containerID string, options container.CommitOptions) (types.IDResponse, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.IDResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (types.IDResponse, error) {
 | 
			
		||||
	var repository, tag string
 | 
			
		||||
	if options.Reference != "" {
 | 
			
		||||
		ref, err := reference.ParseNormalizedNamed(options.Reference)
 | 
			
		||||
@@ -37,7 +32,7 @@ func (cli *Client) ContainerCommit(ctx context.Context, containerID string, opti
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("container", containerID)
 | 
			
		||||
	query.Set("container", container)
 | 
			
		||||
	query.Set("repo", repository)
 | 
			
		||||
	query.Set("tag", tag)
 | 
			
		||||
	query.Set("comment", options.Comment)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								vendor/github.com/docker/docker/client/container_copy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/docker/docker/client/container_copy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -16,15 +16,11 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerStatPath returns stat information about a path inside the container filesystem.
 | 
			
		||||
func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (container.PathStat, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.PathStat{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API.
 | 
			
		||||
 | 
			
		||||
	response, err := cli.head(ctx, "/containers/"+containerID+"/archive", query, nil)
 | 
			
		||||
	urlStr := "/containers/" + containerID + "/archive"
 | 
			
		||||
	response, err := cli.head(ctx, urlStr, query, nil)
 | 
			
		||||
	defer ensureReaderClosed(response)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.PathStat{}, err
 | 
			
		||||
@@ -35,11 +31,6 @@ func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path stri
 | 
			
		||||
// CopyToContainer copies content into the container filesystem.
 | 
			
		||||
// Note that `content` must be a Reader for a TAR archive
 | 
			
		||||
func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath string, content io.Reader, options container.CopyToContainerOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("path", filepath.ToSlash(dstPath)) // Normalize the paths used in the API.
 | 
			
		||||
	// Do not allow for an existing directory to be overwritten by a non-directory and vice versa.
 | 
			
		||||
@@ -51,7 +42,9 @@ func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath str
 | 
			
		||||
		query.Set("copyUIDGID", "true")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	response, err := cli.putRaw(ctx, "/containers/"+containerID+"/archive", query, content, nil)
 | 
			
		||||
	apiPath := "/containers/" + containerID + "/archive"
 | 
			
		||||
 | 
			
		||||
	response, err := cli.putRaw(ctx, apiPath, query, content, nil)
 | 
			
		||||
	defer ensureReaderClosed(response)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -63,15 +56,11 @@ func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath str
 | 
			
		||||
// CopyFromContainer gets the content from the container and returns it as a Reader
 | 
			
		||||
// for a TAR archive to manipulate it in the host. It's up to the caller to close the reader.
 | 
			
		||||
func (cli *Client) CopyFromContainer(ctx context.Context, containerID, srcPath string) (io.ReadCloser, container.PathStat, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, container.PathStat{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := make(url.Values, 1)
 | 
			
		||||
	query.Set("path", filepath.ToSlash(srcPath)) // Normalize the paths used in the API.
 | 
			
		||||
 | 
			
		||||
	response, err := cli.get(ctx, "/containers/"+containerID+"/archive", query, nil)
 | 
			
		||||
	apiPath := "/containers/" + containerID + "/archive"
 | 
			
		||||
	response, err := cli.get(ctx, apiPath, query, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, container.PathStat{}, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								vendor/github.com/docker/docker/client/container_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								vendor/github.com/docker/docker/client/container_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,8 +5,6 @@ import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"net/url"
 | 
			
		||||
	"path"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/network"
 | 
			
		||||
@@ -14,6 +12,12 @@ import (
 | 
			
		||||
	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type configWrapper struct {
 | 
			
		||||
	*container.Config
 | 
			
		||||
	HostConfig       *container.HostConfig
 | 
			
		||||
	NetworkingConfig *network.NetworkingConfig
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerCreate creates a new container based on the given configuration.
 | 
			
		||||
// It can be associated with a name, but it's not mandatory.
 | 
			
		||||
func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error) {
 | 
			
		||||
@@ -54,9 +58,6 @@ func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config
 | 
			
		||||
			// When using API under 1.42, the Linux daemon doesn't respect the ConsoleSize
 | 
			
		||||
			hostConfig.ConsoleSize = [2]uint{0, 0}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		hostConfig.CapAdd = normalizeCapabilities(hostConfig.CapAdd)
 | 
			
		||||
		hostConfig.CapDrop = normalizeCapabilities(hostConfig.CapDrop)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Since API 1.44, the container-wide MacAddress is deprecated and will trigger a WARNING if it's specified.
 | 
			
		||||
@@ -73,7 +74,7 @@ func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config
 | 
			
		||||
		query.Set("name", containerName)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	body := container.CreateRequest{
 | 
			
		||||
	body := configWrapper{
 | 
			
		||||
		Config:           config,
 | 
			
		||||
		HostConfig:       hostConfig,
 | 
			
		||||
		NetworkingConfig: networkingConfig,
 | 
			
		||||
@@ -113,42 +114,3 @@ func hasEndpointSpecificMacAddress(networkingConfig *network.NetworkingConfig) b
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// allCapabilities is a magic value for "all capabilities"
 | 
			
		||||
const allCapabilities = "ALL"
 | 
			
		||||
 | 
			
		||||
// normalizeCapabilities normalizes capabilities to their canonical form,
 | 
			
		||||
// removes duplicates, and sorts the results.
 | 
			
		||||
//
 | 
			
		||||
// It is similar to [github.com/docker/docker/oci/caps.NormalizeLegacyCapabilities],
 | 
			
		||||
// but performs no validation based on supported capabilities.
 | 
			
		||||
func normalizeCapabilities(caps []string) []string {
 | 
			
		||||
	var normalized []string
 | 
			
		||||
 | 
			
		||||
	unique := make(map[string]struct{})
 | 
			
		||||
	for _, c := range caps {
 | 
			
		||||
		c = normalizeCap(c)
 | 
			
		||||
		if _, ok := unique[c]; ok {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		unique[c] = struct{}{}
 | 
			
		||||
		normalized = append(normalized, c)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sort.Strings(normalized)
 | 
			
		||||
	return normalized
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// normalizeCap normalizes a capability to its canonical format by upper-casing
 | 
			
		||||
// and adding a "CAP_" prefix (if not yet present). It also accepts the "ALL"
 | 
			
		||||
// magic-value.
 | 
			
		||||
func normalizeCap(cap string) string {
 | 
			
		||||
	cap = strings.ToUpper(cap)
 | 
			
		||||
	if cap == allCapabilities {
 | 
			
		||||
		return cap
 | 
			
		||||
	}
 | 
			
		||||
	if !strings.HasPrefix(cap, "CAP_") {
 | 
			
		||||
		cap = "CAP_" + cap
 | 
			
		||||
	}
 | 
			
		||||
	return cap
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								vendor/github.com/docker/docker/client/container_diff.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/docker/docker/client/container_diff.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,21 +10,14 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerDiff shows differences in a container filesystem since it was started.
 | 
			
		||||
func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]container.FilesystemChange, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	var changes []container.FilesystemChange
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
		return changes, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var changes []container.FilesystemChange
 | 
			
		||||
	err = json.NewDecoder(serverResp.body).Decode(&changes)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return changes, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								vendor/github.com/docker/docker/client/container_exec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/docker/docker/client/container_exec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,11 +11,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ContainerExecCreate creates a new exec configuration to run an exec process.
 | 
			
		||||
func (cli *Client) ContainerExecCreate(ctx context.Context, containerID string, options container.ExecOptions) (types.IDResponse, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.IDResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
func (cli *Client) ContainerExecCreate(ctx context.Context, container string, options container.ExecOptions) (types.IDResponse, error) {
 | 
			
		||||
	var response types.IDResponse
 | 
			
		||||
 | 
			
		||||
	// Make sure we negotiated (if the client is configured to do so),
 | 
			
		||||
	// as code below contains API-version specific handling of options.
 | 
			
		||||
@@ -23,23 +20,21 @@ func (cli *Client) ContainerExecCreate(ctx context.Context, containerID string,
 | 
			
		||||
	// Normally, version-negotiation (if enabled) would not happen until
 | 
			
		||||
	// the API request is made.
 | 
			
		||||
	if err := cli.checkVersion(ctx); err != nil {
 | 
			
		||||
		return types.IDResponse{}, err
 | 
			
		||||
		return response, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.25", "env"); len(options.Env) != 0 && err != nil {
 | 
			
		||||
		return types.IDResponse{}, err
 | 
			
		||||
		return response, err
 | 
			
		||||
	}
 | 
			
		||||
	if versions.LessThan(cli.ClientVersion(), "1.42") {
 | 
			
		||||
		options.ConsoleSize = nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+containerID+"/exec", nil, options, nil)
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+container+"/exec", nil, options, nil)
 | 
			
		||||
	defer ensureReaderClosed(resp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.IDResponse{}, err
 | 
			
		||||
		return response, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response types.IDResponse
 | 
			
		||||
	err = json.NewDecoder(resp.body).Decode(&response)
 | 
			
		||||
	return response, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_export.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_export.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,11 +10,6 @@ import (
 | 
			
		||||
// and returns them as an io.ReadCloser. It's up to the caller
 | 
			
		||||
// to close the stream.
 | 
			
		||||
func (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/docker/docker/client/container_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/docker/docker/client/container_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,34 +7,30 @@ import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/url"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ContainerInspect returns the container information.
 | 
			
		||||
func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (container.InspectResponse, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.InspectResponse{}, err
 | 
			
		||||
func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) {
 | 
			
		||||
	if containerID == "" {
 | 
			
		||||
		return types.ContainerJSON{}, objectNotFoundError{object: "container", id: containerID}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", nil, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.InspectResponse{}, err
 | 
			
		||||
		return types.ContainerJSON{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.InspectResponse
 | 
			
		||||
	var response types.ContainerJSON
 | 
			
		||||
	err = json.NewDecoder(serverResp.body).Decode(&response)
 | 
			
		||||
	return response, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerInspectWithRaw returns the container information and its raw representation.
 | 
			
		||||
func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (container.InspectResponse, []byte, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.InspectResponse{}, nil, err
 | 
			
		||||
func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error) {
 | 
			
		||||
	if containerID == "" {
 | 
			
		||||
		return types.ContainerJSON{}, nil, objectNotFoundError{object: "container", id: containerID}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if getSize {
 | 
			
		||||
		query.Set("size", "1")
 | 
			
		||||
@@ -42,15 +38,15 @@ func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID stri
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", query, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.InspectResponse{}, nil, err
 | 
			
		||||
		return types.ContainerJSON{}, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	body, err := io.ReadAll(serverResp.body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.InspectResponse{}, nil, err
 | 
			
		||||
		return types.ContainerJSON{}, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.InspectResponse
 | 
			
		||||
	var response types.ContainerJSON
 | 
			
		||||
	rdr := bytes.NewReader(body)
 | 
			
		||||
	err = json.NewDecoder(rdr).Decode(&response)
 | 
			
		||||
	return response, body, err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_kill.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_kill.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,11 +7,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerKill terminates the container process but does not remove the container from the docker host.
 | 
			
		||||
func (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if signal != "" {
 | 
			
		||||
		query.Set("signal", signal)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_list.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_list.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,12 +6,13 @@ import (
 | 
			
		||||
	"net/url"
 | 
			
		||||
	"strconv"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/filters"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ContainerList returns the list of containers in the docker host.
 | 
			
		||||
func (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error) {
 | 
			
		||||
func (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
 | 
			
		||||
	if options.All {
 | 
			
		||||
@@ -50,7 +51,7 @@ func (cli *Client) ContainerList(ctx context.Context, options container.ListOpti
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var containers []container.Summary
 | 
			
		||||
	var containers []types.Container
 | 
			
		||||
	err = json.NewDecoder(resp.body).Decode(&containers)
 | 
			
		||||
	return containers, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/container_logs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/container_logs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,12 +33,7 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this
 | 
			
		||||
// stream.
 | 
			
		||||
func (cli *Client) ContainerLogs(ctx context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.ShowStdout {
 | 
			
		||||
		query.Set("stdout", "1")
 | 
			
		||||
@@ -77,7 +72,7 @@ func (cli *Client) ContainerLogs(ctx context.Context, containerID string, option
 | 
			
		||||
	}
 | 
			
		||||
	query.Set("tail", options.Tail)
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.get(ctx, "/containers/"+containerID+"/logs", query, nil)
 | 
			
		||||
	resp, err := cli.get(ctx, "/containers/"+container+"/logs", query, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_pause.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_pause.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,11 +4,6 @@ import "context"
 | 
			
		||||
 | 
			
		||||
// ContainerPause pauses the main process of a given container without terminating it.
 | 
			
		||||
func (cli *Client) ContainerPause(ctx context.Context, containerID string) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+containerID+"/pause", nil, nil, nil)
 | 
			
		||||
	ensureReaderClosed(resp)
 | 
			
		||||
	return err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								vendor/github.com/docker/docker/client/container_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/docker/docker/client/container_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,24 +11,25 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainersPrune requests the daemon to delete unused data
 | 
			
		||||
func (cli *Client) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error) {
 | 
			
		||||
	var report container.PruneReport
 | 
			
		||||
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.25", "container prune"); err != nil {
 | 
			
		||||
		return container.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query, err := getFiltersQuery(pruneFilters)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.post(ctx, "/containers/prune", query, nil, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var report container.PruneReport
 | 
			
		||||
	if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil {
 | 
			
		||||
		return container.PruneReport{}, fmt.Errorf("Error retrieving disk usage: %v", err)
 | 
			
		||||
		return report, fmt.Errorf("Error retrieving disk usage: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return report, nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_remove.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_remove.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,11 +9,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerRemove kills and removes a container from the docker host.
 | 
			
		||||
func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.RemoveVolumes {
 | 
			
		||||
		query.Set("v", "1")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_rename.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_rename.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,11 +7,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerRename changes the name of a given container.
 | 
			
		||||
func (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("name", newContainerName)
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+containerID+"/rename", query, nil, nil)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/docker/docker/client/container_resize.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/docker/docker/client/container_resize.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,27 +10,18 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerResize changes the size of the tty for a container.
 | 
			
		||||
func (cli *Client) ContainerResize(ctx context.Context, containerID string, options container.ResizeOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return cli.resize(ctx, "/containers/"+containerID, options.Height, options.Width)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerExecResize changes the size of the tty for an exec process running inside a container.
 | 
			
		||||
func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error {
 | 
			
		||||
	execID, err := trimID("exec", execID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return cli.resize(ctx, "/exec/"+execID, options.Height, options.Width)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) resize(ctx context.Context, basePath string, height, width uint) error {
 | 
			
		||||
	// FIXME(thaJeztah): the API / backend accepts uint32, but container.ResizeOptions uses uint.
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("h", strconv.FormatUint(uint64(height), 10))
 | 
			
		||||
	query.Set("w", strconv.FormatUint(uint64(width), 10))
 | 
			
		||||
	query.Set("h", strconv.Itoa(int(height)))
 | 
			
		||||
	query.Set("w", strconv.Itoa(int(width)))
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.post(ctx, basePath+"/resize", query, nil, nil)
 | 
			
		||||
	ensureReaderClosed(resp)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_restart.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_restart.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,11 +13,6 @@ import (
 | 
			
		||||
// It makes the daemon wait for the container to be up again for
 | 
			
		||||
// a specific amount of time, given the timeout.
 | 
			
		||||
func (cli *Client) ContainerRestart(ctx context.Context, containerID string, options container.StopOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.Timeout != nil {
 | 
			
		||||
		query.Set("t", strconv.Itoa(*options.Timeout))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_start.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_start.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,11 +9,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerStart sends a request to the docker daemon to start a container.
 | 
			
		||||
func (cli *Client) ContainerStart(ctx context.Context, containerID string, options container.StartOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if len(options.CheckpointID) != 0 {
 | 
			
		||||
		query.Set("checkpoint", options.CheckpointID)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/docker/docker/client/container_stats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/docker/docker/client/container_stats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,11 +10,6 @@ import (
 | 
			
		||||
// ContainerStats returns near realtime stats for a given container.
 | 
			
		||||
// It's up to the caller to close the io.ReadCloser returned.
 | 
			
		||||
func (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (container.StatsResponseReader, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.StatsResponseReader{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("stream", "0")
 | 
			
		||||
	if stream {
 | 
			
		||||
@@ -35,11 +30,6 @@ func (cli *Client) ContainerStats(ctx context.Context, containerID string, strea
 | 
			
		||||
// ContainerStatsOneShot gets a single stat entry from a container.
 | 
			
		||||
// It differs from `ContainerStats` in that the API should not wait to prime the stats
 | 
			
		||||
func (cli *Client) ContainerStatsOneShot(ctx context.Context, containerID string) (container.StatsResponseReader, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.StatsResponseReader{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("stream", "0")
 | 
			
		||||
	query.Set("one-shot", "1")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_stop.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_stop.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,11 +17,6 @@ import (
 | 
			
		||||
// otherwise the engine default. A negative timeout value can be specified,
 | 
			
		||||
// meaning no timeout, i.e. no forceful termination is performed.
 | 
			
		||||
func (cli *Client) ContainerStop(ctx context.Context, containerID string, options container.StopOptions) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if options.Timeout != nil {
 | 
			
		||||
		query.Set("t", strconv.Itoa(*options.Timeout))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/container_top.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/container_top.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,11 +11,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerTop shows process information from within a container.
 | 
			
		||||
func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.ContainerTopOKBody, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.ContainerTopOKBody{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.ContainerTopOKBody
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if len(arguments) > 0 {
 | 
			
		||||
		query.Set("ps_args", strings.Join(arguments, " "))
 | 
			
		||||
@@ -24,10 +20,9 @@ func (cli *Client) ContainerTop(ctx context.Context, containerID string, argumen
 | 
			
		||||
	resp, err := cli.get(ctx, "/containers/"+containerID+"/top", query, nil)
 | 
			
		||||
	defer ensureReaderClosed(resp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.ContainerTopOKBody{}, err
 | 
			
		||||
		return response, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.ContainerTopOKBody
 | 
			
		||||
	err = json.NewDecoder(resp.body).Decode(&response)
 | 
			
		||||
	return response, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/docker/docker/client/container_unpause.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/docker/docker/client/container_unpause.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,11 +4,6 @@ import "context"
 | 
			
		||||
 | 
			
		||||
// ContainerUnpause resumes the process execution within a container
 | 
			
		||||
func (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.post(ctx, "/containers/"+containerID+"/unpause", nil, nil, nil)
 | 
			
		||||
	ensureReaderClosed(resp)
 | 
			
		||||
	return err
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/client/container_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/client/container_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,18 +9,13 @@ import (
 | 
			
		||||
 | 
			
		||||
// ContainerUpdate updates the resources of a container.
 | 
			
		||||
func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) {
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.ContainerUpdateOKBody{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.ContainerUpdateOKBody
 | 
			
		||||
	serverResp, err := cli.post(ctx, "/containers/"+containerID+"/update", nil, updateConfig, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return container.ContainerUpdateOKBody{}, err
 | 
			
		||||
		return response, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response container.ContainerUpdateOKBody
 | 
			
		||||
	err = json.NewDecoder(serverResp.body).Decode(&response)
 | 
			
		||||
	return response, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/docker/docker/client/container_wait.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/docker/docker/client/container_wait.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,12 +33,6 @@ func (cli *Client) ContainerWait(ctx context.Context, containerID string, condit
 | 
			
		||||
	resultC := make(chan container.WaitResponse)
 | 
			
		||||
	errC := make(chan error, 1)
 | 
			
		||||
 | 
			
		||||
	containerID, err := trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		errC <- err
 | 
			
		||||
		return resultC, errC
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Make sure we negotiated (if the client is configured to do so),
 | 
			
		||||
	// as code below contains API-version specific handling of options.
 | 
			
		||||
	//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/github.com/docker/docker/client/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/docker/docker/client/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,11 +2,11 @@ package client // import "github.com/docker/docker/client"
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/versions"
 | 
			
		||||
	"github.com/docker/docker/errdefs"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errConnectionFailed implements an error returned when connection failed.
 | 
			
		||||
@@ -29,18 +29,10 @@ func IsErrConnectionFailed(err error) bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: this function was only used internally, and will be removed in the next release.
 | 
			
		||||
func ErrorConnectionFailed(host string) error {
 | 
			
		||||
	return connectionFailed(host)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// connectionFailed returns an error with host in the error message when connection
 | 
			
		||||
// to docker daemon failed.
 | 
			
		||||
func connectionFailed(host string) error {
 | 
			
		||||
	var err error
 | 
			
		||||
	if host == "" {
 | 
			
		||||
		err = errors.New("Cannot connect to the Docker daemon. Is the docker daemon running on this host?")
 | 
			
		||||
		err = fmt.Errorf("Cannot connect to the Docker daemon. Is the docker daemon running on this host?")
 | 
			
		||||
	} else {
 | 
			
		||||
		err = fmt.Errorf("Cannot connect to the Docker daemon at %s. Is the docker daemon running?", host)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/docker/docker/client/hijack.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/docker/docker/client/hijack.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -25,17 +25,12 @@ func (cli *Client) postHijacked(ctx context.Context, path string, query url.Valu
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.HijackedResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
	conn, mediaType, err := setupHijackConn(cli.dialer(), req, "tcp")
 | 
			
		||||
	conn, mediaType, err := cli.setupHijackConn(req, "tcp")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return types.HijackedResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if versions.LessThan(cli.ClientVersion(), "1.42") {
 | 
			
		||||
		// Prior to 1.42, Content-Type is always set to raw-stream and not relevant
 | 
			
		||||
		mediaType = ""
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return types.NewHijackedResponse(conn, mediaType), nil
 | 
			
		||||
	return types.NewHijackedResponse(conn, mediaType), err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DialHijack returns a hijacked connection with negotiated protocol proto.
 | 
			
		||||
@@ -46,15 +41,16 @@ func (cli *Client) DialHijack(ctx context.Context, url, proto string, meta map[s
 | 
			
		||||
	}
 | 
			
		||||
	req = cli.addHeaders(req, meta)
 | 
			
		||||
 | 
			
		||||
	conn, _, err := setupHijackConn(cli.Dialer(), req, proto)
 | 
			
		||||
	conn, _, err := cli.setupHijackConn(req, proto)
 | 
			
		||||
	return conn, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func setupHijackConn(dialer func(context.Context) (net.Conn, error), req *http.Request, proto string) (_ net.Conn, _ string, retErr error) {
 | 
			
		||||
func (cli *Client) setupHijackConn(req *http.Request, proto string) (_ net.Conn, _ string, retErr error) {
 | 
			
		||||
	ctx := req.Context()
 | 
			
		||||
	req.Header.Set("Connection", "Upgrade")
 | 
			
		||||
	req.Header.Set("Upgrade", proto)
 | 
			
		||||
 | 
			
		||||
	dialer := cli.Dialer()
 | 
			
		||||
	conn, err := dialer(ctx)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "", errors.Wrap(err, "cannot connect to the Docker daemon. Is 'docker daemon' running on this host?")
 | 
			
		||||
@@ -100,7 +96,13 @@ func setupHijackConn(dialer func(context.Context) (net.Conn, error), req *http.R
 | 
			
		||||
		hc.r.Reset(nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return conn, resp.Header.Get("Content-Type"), nil
 | 
			
		||||
	var mediaType string
 | 
			
		||||
	if versions.GreaterThanOrEqualTo(cli.ClientVersion(), "1.42") {
 | 
			
		||||
		// Prior to 1.42, Content-Type is always set to raw-stream and not relevant
 | 
			
		||||
		mediaType = resp.Header.Get("Content-Type")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return conn, mediaType, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// hijackedConn wraps a net.Conn and is returned by setupHijackConn in the case
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										118
									
								
								vendor/github.com/docker/docker/client/image_build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										118
									
								
								vendor/github.com/docker/docker/client/image_build.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,6 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/api/types/container"
 | 
			
		||||
	"github.com/docker/docker/api/types/network"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ImageBuild sends a request to the daemon to build images.
 | 
			
		||||
@@ -45,15 +44,10 @@ func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, optio
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.ImageBuildOptions) (url.Values, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if len(options.Tags) > 0 {
 | 
			
		||||
		query["t"] = options.Tags
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.SecurityOpt) > 0 {
 | 
			
		||||
		query["securityopt"] = options.SecurityOpt
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.ExtraHosts) > 0 {
 | 
			
		||||
		query["extrahosts"] = options.ExtraHosts
 | 
			
		||||
	query := url.Values{
 | 
			
		||||
		"t":           options.Tags,
 | 
			
		||||
		"securityopt": options.SecurityOpt,
 | 
			
		||||
		"extrahosts":  options.ExtraHosts,
 | 
			
		||||
	}
 | 
			
		||||
	if options.SuppressOutput {
 | 
			
		||||
		query.Set("q", "1")
 | 
			
		||||
@@ -64,11 +58,9 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I
 | 
			
		||||
	if options.NoCache {
 | 
			
		||||
		query.Set("nocache", "1")
 | 
			
		||||
	}
 | 
			
		||||
	if !options.Remove {
 | 
			
		||||
		// only send value when opting out because the daemon's default is
 | 
			
		||||
		// to remove intermediate containers after a successful build,
 | 
			
		||||
		//
 | 
			
		||||
		// TODO(thaJeztah): deprecate "Remove" option, and provide a "NoRemove" or "Keep" option instead.
 | 
			
		||||
	if options.Remove {
 | 
			
		||||
		query.Set("rm", "1")
 | 
			
		||||
	} else {
 | 
			
		||||
		query.Set("rm", "0")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -91,70 +83,42 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I
 | 
			
		||||
		query.Set("isolation", string(options.Isolation))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if options.CPUSetCPUs != "" {
 | 
			
		||||
		query.Set("cpusetcpus", options.CPUSetCPUs)
 | 
			
		||||
	query.Set("cpusetcpus", options.CPUSetCPUs)
 | 
			
		||||
	query.Set("networkmode", options.NetworkMode)
 | 
			
		||||
	query.Set("cpusetmems", options.CPUSetMems)
 | 
			
		||||
	query.Set("cpushares", strconv.FormatInt(options.CPUShares, 10))
 | 
			
		||||
	query.Set("cpuquota", strconv.FormatInt(options.CPUQuota, 10))
 | 
			
		||||
	query.Set("cpuperiod", strconv.FormatInt(options.CPUPeriod, 10))
 | 
			
		||||
	query.Set("memory", strconv.FormatInt(options.Memory, 10))
 | 
			
		||||
	query.Set("memswap", strconv.FormatInt(options.MemorySwap, 10))
 | 
			
		||||
	query.Set("cgroupparent", options.CgroupParent)
 | 
			
		||||
	query.Set("shmsize", strconv.FormatInt(options.ShmSize, 10))
 | 
			
		||||
	query.Set("dockerfile", options.Dockerfile)
 | 
			
		||||
	query.Set("target", options.Target)
 | 
			
		||||
 | 
			
		||||
	ulimitsJSON, err := json.Marshal(options.Ulimits)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return query, err
 | 
			
		||||
	}
 | 
			
		||||
	if options.NetworkMode != "" && options.NetworkMode != network.NetworkDefault {
 | 
			
		||||
		query.Set("networkmode", options.NetworkMode)
 | 
			
		||||
	query.Set("ulimits", string(ulimitsJSON))
 | 
			
		||||
 | 
			
		||||
	buildArgsJSON, err := json.Marshal(options.BuildArgs)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return query, err
 | 
			
		||||
	}
 | 
			
		||||
	if options.CPUSetMems != "" {
 | 
			
		||||
		query.Set("cpusetmems", options.CPUSetMems)
 | 
			
		||||
	query.Set("buildargs", string(buildArgsJSON))
 | 
			
		||||
 | 
			
		||||
	labelsJSON, err := json.Marshal(options.Labels)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return query, err
 | 
			
		||||
	}
 | 
			
		||||
	if options.CPUShares != 0 {
 | 
			
		||||
		query.Set("cpushares", strconv.FormatInt(options.CPUShares, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.CPUQuota != 0 {
 | 
			
		||||
		query.Set("cpuquota", strconv.FormatInt(options.CPUQuota, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.CPUPeriod != 0 {
 | 
			
		||||
		query.Set("cpuperiod", strconv.FormatInt(options.CPUPeriod, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.Memory != 0 {
 | 
			
		||||
		query.Set("memory", strconv.FormatInt(options.Memory, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.MemorySwap != 0 {
 | 
			
		||||
		query.Set("memswap", strconv.FormatInt(options.MemorySwap, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.CgroupParent != "" {
 | 
			
		||||
		query.Set("cgroupparent", options.CgroupParent)
 | 
			
		||||
	}
 | 
			
		||||
	if options.ShmSize != 0 {
 | 
			
		||||
		query.Set("shmsize", strconv.FormatInt(options.ShmSize, 10))
 | 
			
		||||
	}
 | 
			
		||||
	if options.Dockerfile != "" {
 | 
			
		||||
		query.Set("dockerfile", options.Dockerfile)
 | 
			
		||||
	}
 | 
			
		||||
	if options.Target != "" {
 | 
			
		||||
		query.Set("target", options.Target)
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.Ulimits) != 0 {
 | 
			
		||||
		ulimitsJSON, err := json.Marshal(options.Ulimits)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return query, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("ulimits", string(ulimitsJSON))
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.BuildArgs) != 0 {
 | 
			
		||||
		buildArgsJSON, err := json.Marshal(options.BuildArgs)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return query, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("buildargs", string(buildArgsJSON))
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.Labels) != 0 {
 | 
			
		||||
		labelsJSON, err := json.Marshal(options.Labels)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return query, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("labels", string(labelsJSON))
 | 
			
		||||
	}
 | 
			
		||||
	if len(options.CacheFrom) != 0 {
 | 
			
		||||
		cacheFromJSON, err := json.Marshal(options.CacheFrom)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return query, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("cachefrom", string(cacheFromJSON))
 | 
			
		||||
	query.Set("labels", string(labelsJSON))
 | 
			
		||||
 | 
			
		||||
	cacheFromJSON, err := json.Marshal(options.CacheFrom)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return query, err
 | 
			
		||||
	}
 | 
			
		||||
	query.Set("cachefrom", string(cacheFromJSON))
 | 
			
		||||
	if options.SessionID != "" {
 | 
			
		||||
		query.Set("session", options.SessionID)
 | 
			
		||||
	}
 | 
			
		||||
@@ -167,9 +131,7 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I
 | 
			
		||||
	if options.BuildID != "" {
 | 
			
		||||
		query.Set("buildid", options.BuildID)
 | 
			
		||||
	}
 | 
			
		||||
	if options.Version != "" {
 | 
			
		||||
		query.Set("version", string(options.Version))
 | 
			
		||||
	}
 | 
			
		||||
	query.Set("version", string(options.Version))
 | 
			
		||||
 | 
			
		||||
	if options.Outputs != nil {
 | 
			
		||||
		outputsJSON, err := json.Marshal(options.Outputs)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								vendor/github.com/docker/docker/client/image_history.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/docker/docker/client/image_history.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,27 +9,14 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ImageHistory returns the changes in an image in history format.
 | 
			
		||||
func (cli *Client) ImageHistory(ctx context.Context, imageID string, opts image.HistoryOptions) ([]image.HistoryResponseItem, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if opts.Platform != nil {
 | 
			
		||||
		if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		p, err := encodePlatform(opts.Platform)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("platform", p)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", query, nil)
 | 
			
		||||
func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]image.HistoryResponseItem, error) {
 | 
			
		||||
	var history []image.HistoryResponseItem
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
		return history, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var history []image.HistoryResponseItem
 | 
			
		||||
	err = json.NewDecoder(serverResp.body).Decode(&history)
 | 
			
		||||
	return history, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/github.com/docker/docker/client/image_import.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/docker/docker/client/image_import.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -21,18 +21,10 @@ func (cli *Client) ImageImport(ctx context.Context, source image.ImportSource, r
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if source.SourceName != "" {
 | 
			
		||||
		query.Set("fromSrc", source.SourceName)
 | 
			
		||||
	}
 | 
			
		||||
	if ref != "" {
 | 
			
		||||
		query.Set("repo", ref)
 | 
			
		||||
	}
 | 
			
		||||
	if options.Tag != "" {
 | 
			
		||||
		query.Set("tag", options.Tag)
 | 
			
		||||
	}
 | 
			
		||||
	if options.Message != "" {
 | 
			
		||||
		query.Set("message", options.Message)
 | 
			
		||||
	}
 | 
			
		||||
	query.Set("fromSrc", source.SourceName)
 | 
			
		||||
	query.Set("repo", ref)
 | 
			
		||||
	query.Set("tag", options.Tag)
 | 
			
		||||
	query.Set("message", options.Message)
 | 
			
		||||
	if options.Platform != "" {
 | 
			
		||||
		query.Set("platform", strings.ToLower(options.Platform))
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										103
									
								
								vendor/github.com/docker/docker/client/image_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								vendor/github.com/docker/docker/client/image_inspect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,106 +4,29 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"context"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/url"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ImageInspectOption is a type representing functional options for the image inspect operation.
 | 
			
		||||
type ImageInspectOption interface {
 | 
			
		||||
	Apply(*imageInspectOpts) error
 | 
			
		||||
}
 | 
			
		||||
type imageInspectOptionFunc func(opt *imageInspectOpts) error
 | 
			
		||||
 | 
			
		||||
func (f imageInspectOptionFunc) Apply(o *imageInspectOpts) error {
 | 
			
		||||
	return f(o)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspectWithRawResponse instructs the client to additionally store the
 | 
			
		||||
// raw inspect response in the provided buffer.
 | 
			
		||||
func ImageInspectWithRawResponse(raw *bytes.Buffer) ImageInspectOption {
 | 
			
		||||
	return imageInspectOptionFunc(func(opts *imageInspectOpts) error {
 | 
			
		||||
		opts.raw = raw
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspectWithManifests sets manifests API option for the image inspect operation.
 | 
			
		||||
// This option is only available for API version 1.48 and up.
 | 
			
		||||
// With this option set, the image inspect operation response will have the
 | 
			
		||||
// [image.InspectResponse.Manifests] field populated if the server is multi-platform capable.
 | 
			
		||||
func ImageInspectWithManifests(manifests bool) ImageInspectOption {
 | 
			
		||||
	return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error {
 | 
			
		||||
		clientOpts.apiOptions.Manifests = manifests
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspectWithAPIOpts sets the API options for the image inspect operation.
 | 
			
		||||
func ImageInspectWithAPIOpts(opts image.InspectOptions) ImageInspectOption {
 | 
			
		||||
	return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error {
 | 
			
		||||
		clientOpts.apiOptions = opts
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type imageInspectOpts struct {
 | 
			
		||||
	raw        *bytes.Buffer
 | 
			
		||||
	apiOptions image.InspectOptions
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspect returns the image information.
 | 
			
		||||
func (cli *Client) ImageInspect(ctx context.Context, imageID string, inspectOpts ...ImageInspectOption) (image.InspectResponse, error) {
 | 
			
		||||
// ImageInspectWithRaw returns the image information and its raw representation.
 | 
			
		||||
func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error) {
 | 
			
		||||
	if imageID == "" {
 | 
			
		||||
		return image.InspectResponse{}, objectNotFoundError{object: "image", id: imageID}
 | 
			
		||||
		return types.ImageInspect{}, nil, objectNotFoundError{object: "image", id: imageID}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var opts imageInspectOpts
 | 
			
		||||
	for _, opt := range inspectOpts {
 | 
			
		||||
		if err := opt.Apply(&opts); err != nil {
 | 
			
		||||
			return image.InspectResponse{}, fmt.Errorf("error applying image inspect option: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	if opts.apiOptions.Manifests {
 | 
			
		||||
		if err := cli.NewVersionError(ctx, "1.48", "manifests"); err != nil {
 | 
			
		||||
			return image.InspectResponse{}, err
 | 
			
		||||
		}
 | 
			
		||||
		query.Set("manifests", "1")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/images/"+imageID+"/json", query, nil)
 | 
			
		||||
	serverResp, err := cli.get(ctx, "/images/"+imageID+"/json", nil, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return image.InspectResponse{}, err
 | 
			
		||||
		return types.ImageInspect{}, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	buf := opts.raw
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		buf = &bytes.Buffer{}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err := io.Copy(buf, serverResp.body); err != nil {
 | 
			
		||||
		return image.InspectResponse{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var response image.InspectResponse
 | 
			
		||||
	err = json.Unmarshal(buf.Bytes(), &response)
 | 
			
		||||
	return response, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ImageInspectWithRaw returns the image information and its raw representation.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: Use [Client.ImageInspect] instead.
 | 
			
		||||
// Raw response can be obtained by [ImageInspectWithRawResponse] option.
 | 
			
		||||
func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (image.InspectResponse, []byte, error) {
 | 
			
		||||
	var buf bytes.Buffer
 | 
			
		||||
	resp, err := cli.ImageInspect(ctx, imageID, ImageInspectWithRawResponse(&buf))
 | 
			
		||||
	body, err := io.ReadAll(serverResp.body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return image.InspectResponse{}, nil, err
 | 
			
		||||
		return types.ImageInspect{}, nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return resp, buf.Bytes(), err
 | 
			
		||||
 | 
			
		||||
	var response types.ImageInspect
 | 
			
		||||
	rdr := bytes.NewReader(body)
 | 
			
		||||
	err = json.NewDecoder(rdr).Decode(&response)
 | 
			
		||||
	return response, body, err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/docker/docker/client/image_load.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/docker/docker/client/image_load.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,29 +12,13 @@ import (
 | 
			
		||||
// ImageLoad loads an image in the docker host from the client host.
 | 
			
		||||
// It's up to the caller to close the io.ReadCloser in the
 | 
			
		||||
// ImageLoadResponse returned by this function.
 | 
			
		||||
//
 | 
			
		||||
// Platform is an optional parameter that specifies the platform to load from
 | 
			
		||||
// the provided multi-platform image. This is only has effect if the input image
 | 
			
		||||
// is a multi-platform image.
 | 
			
		||||
func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, opts image.LoadOptions) (image.LoadResponse, error) {
 | 
			
		||||
	query := url.Values{}
 | 
			
		||||
	query.Set("quiet", "0")
 | 
			
		||||
	if opts.Quiet {
 | 
			
		||||
		query.Set("quiet", "1")
 | 
			
		||||
func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (image.LoadResponse, error) {
 | 
			
		||||
	v := url.Values{}
 | 
			
		||||
	v.Set("quiet", "0")
 | 
			
		||||
	if quiet {
 | 
			
		||||
		v.Set("quiet", "1")
 | 
			
		||||
	}
 | 
			
		||||
	if len(opts.Platforms) > 0 {
 | 
			
		||||
		if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil {
 | 
			
		||||
			return image.LoadResponse{}, err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		p, err := encodePlatforms(opts.Platforms...)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return image.LoadResponse{}, err
 | 
			
		||||
		}
 | 
			
		||||
		query["platform"] = p
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.postRaw(ctx, "/images/load", query, input, http.Header{
 | 
			
		||||
	resp, err := cli.postRaw(ctx, "/images/load", v, input, http.Header{
 | 
			
		||||
		"Content-Type": {"application/x-tar"},
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								vendor/github.com/docker/docker/client/image_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/docker/docker/client/image_prune.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,24 +11,25 @@ import (
 | 
			
		||||
 | 
			
		||||
// ImagesPrune requests the daemon to delete unused data
 | 
			
		||||
func (cli *Client) ImagesPrune(ctx context.Context, pruneFilters filters.Args) (image.PruneReport, error) {
 | 
			
		||||
	var report image.PruneReport
 | 
			
		||||
 | 
			
		||||
	if err := cli.NewVersionError(ctx, "1.25", "image prune"); err != nil {
 | 
			
		||||
		return image.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	query, err := getFiltersQuery(pruneFilters)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return image.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	serverResp, err := cli.post(ctx, "/images/prune", query, nil, nil)
 | 
			
		||||
	defer ensureReaderClosed(serverResp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return image.PruneReport{}, err
 | 
			
		||||
		return report, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var report image.PruneReport
 | 
			
		||||
	if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil {
 | 
			
		||||
		return image.PruneReport{}, fmt.Errorf("Error retrieving disk usage: %v", err)
 | 
			
		||||
		return report, fmt.Errorf("Error retrieving disk usage: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return report, nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								vendor/github.com/docker/docker/client/image_save.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/docker/docker/client/image_save.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,28 +4,15 @@ import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/url"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/api/types/image"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ImageSave retrieves one or more images from the docker host as an io.ReadCloser.
 | 
			
		||||
// It's up to the caller to store the images and close the stream.
 | 
			
		||||
func (cli *Client) ImageSave(ctx context.Context, imageIDs []string, opts image.SaveOptions) (io.ReadCloser, error) {
 | 
			
		||||
func (cli *Client) ImageSave(ctx context.Context, imageIDs []string) (io.ReadCloser, error) {
 | 
			
		||||
	query := url.Values{
 | 
			
		||||
		"names": imageIDs,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(opts.Platforms) > 0 {
 | 
			
		||||
		if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		p, err := encodePlatforms(opts.Platforms...)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		query["platform"] = p
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	resp, err := cli.get(ctx, "/images/get", query, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -20,23 +20,17 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CommonAPIClient is the common methods between stable and experimental versions of APIClient.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use [APIClient] instead. This type will be an alias for [APIClient] in the next release, and removed after.
 | 
			
		||||
type CommonAPIClient = stableAPIClient
 | 
			
		||||
 | 
			
		||||
// APIClient is an interface that clients that talk with a docker server must implement.
 | 
			
		||||
type APIClient interface {
 | 
			
		||||
	stableAPIClient
 | 
			
		||||
	CheckpointAPIClient // CheckpointAPIClient is still experimental.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type stableAPIClient interface {
 | 
			
		||||
type CommonAPIClient interface {
 | 
			
		||||
	ConfigAPIClient
 | 
			
		||||
	ContainerAPIClient
 | 
			
		||||
	DistributionAPIClient
 | 
			
		||||
	ImageAPIClient
 | 
			
		||||
	NodeAPIClient
 | 
			
		||||
	NetworkAPIClient
 | 
			
		||||
	PluginAPIClient
 | 
			
		||||
	ServiceAPIClient
 | 
			
		||||
	SwarmAPIClient
 | 
			
		||||
	SecretAPIClient
 | 
			
		||||
	SystemAPIClient
 | 
			
		||||
	VolumeAPIClient
 | 
			
		||||
	ClientVersion() string
 | 
			
		||||
@@ -45,25 +39,9 @@ type stableAPIClient interface {
 | 
			
		||||
	ServerVersion(ctx context.Context) (types.Version, error)
 | 
			
		||||
	NegotiateAPIVersion(ctx context.Context)
 | 
			
		||||
	NegotiateAPIVersionPing(types.Ping)
 | 
			
		||||
	HijackDialer
 | 
			
		||||
	DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error)
 | 
			
		||||
	Dialer() func(context.Context) (net.Conn, error)
 | 
			
		||||
	Close() error
 | 
			
		||||
	SwarmManagementAPIClient
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SwarmManagementAPIClient defines all methods for managing Swarm-specific
 | 
			
		||||
// objects.
 | 
			
		||||
type SwarmManagementAPIClient interface {
 | 
			
		||||
	SwarmAPIClient
 | 
			
		||||
	NodeAPIClient
 | 
			
		||||
	ServiceAPIClient
 | 
			
		||||
	SecretAPIClient
 | 
			
		||||
	ConfigAPIClient
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HijackDialer defines methods for a hijack dialer.
 | 
			
		||||
type HijackDialer interface {
 | 
			
		||||
	DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ContainerAPIClient defines API client methods for the containers
 | 
			
		||||
@@ -78,10 +56,10 @@ type ContainerAPIClient interface {
 | 
			
		||||
	ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error
 | 
			
		||||
	ContainerExecStart(ctx context.Context, execID string, options container.ExecStartOptions) error
 | 
			
		||||
	ContainerExport(ctx context.Context, container string) (io.ReadCloser, error)
 | 
			
		||||
	ContainerInspect(ctx context.Context, container string) (container.InspectResponse, error)
 | 
			
		||||
	ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (container.InspectResponse, []byte, error)
 | 
			
		||||
	ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error)
 | 
			
		||||
	ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error)
 | 
			
		||||
	ContainerKill(ctx context.Context, container, signal string) error
 | 
			
		||||
	ContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error)
 | 
			
		||||
	ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error)
 | 
			
		||||
	ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error)
 | 
			
		||||
	ContainerPause(ctx context.Context, container string) error
 | 
			
		||||
	ContainerRemove(ctx context.Context, container string, options container.RemoveOptions) error
 | 
			
		||||
@@ -113,19 +91,16 @@ type ImageAPIClient interface {
 | 
			
		||||
	BuildCachePrune(ctx context.Context, opts types.BuildCachePruneOptions) (*types.BuildCachePruneReport, error)
 | 
			
		||||
	BuildCancel(ctx context.Context, id string) error
 | 
			
		||||
	ImageCreate(ctx context.Context, parentReference string, options image.CreateOptions) (io.ReadCloser, error)
 | 
			
		||||
	ImageHistory(ctx context.Context, image string, opts image.HistoryOptions) ([]image.HistoryResponseItem, error)
 | 
			
		||||
	ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error)
 | 
			
		||||
	ImageImport(ctx context.Context, source image.ImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error)
 | 
			
		||||
	// Deprecated: Use [Client.ImageInspect] instead.
 | 
			
		||||
	// Raw response can be obtained by [ImageInspectWithRawResponse] option.
 | 
			
		||||
	ImageInspectWithRaw(ctx context.Context, image string) (image.InspectResponse, []byte, error)
 | 
			
		||||
	ImageInspect(ctx context.Context, image string, _ ...ImageInspectOption) (image.InspectResponse, error)
 | 
			
		||||
	ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error)
 | 
			
		||||
	ImageList(ctx context.Context, options image.ListOptions) ([]image.Summary, error)
 | 
			
		||||
	ImageLoad(ctx context.Context, input io.Reader, opts image.LoadOptions) (image.LoadResponse, error)
 | 
			
		||||
	ImageLoad(ctx context.Context, input io.Reader, quiet bool) (image.LoadResponse, error)
 | 
			
		||||
	ImagePull(ctx context.Context, ref string, options image.PullOptions) (io.ReadCloser, error)
 | 
			
		||||
	ImagePush(ctx context.Context, ref string, options image.PushOptions) (io.ReadCloser, error)
 | 
			
		||||
	ImageRemove(ctx context.Context, image string, options image.RemoveOptions) ([]image.DeleteResponse, error)
 | 
			
		||||
	ImageSave(ctx context.Context, images []string, opts image.SaveOptions) (io.ReadCloser, error)
 | 
			
		||||
	ImageSearch(ctx context.Context, term string, options registry.SearchOptions) ([]registry.SearchResult, error)
 | 
			
		||||
	ImageSave(ctx context.Context, images []string) (io.ReadCloser, error)
 | 
			
		||||
	ImageTag(ctx context.Context, image, ref string) error
 | 
			
		||||
	ImagesPrune(ctx context.Context, pruneFilter filters.Args) (image.PruneReport, error)
 | 
			
		||||
}
 | 
			
		||||
@@ -6,11 +6,11 @@ import (
 | 
			
		||||
	"github.com/docker/docker/api/types/checkpoint"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CheckpointAPIClient defines API client methods for the checkpoints.
 | 
			
		||||
//
 | 
			
		||||
// Experimental: checkpoint and restore is still an experimental feature,
 | 
			
		||||
// and only available if the daemon is running with experimental features
 | 
			
		||||
// enabled.
 | 
			
		||||
type apiClientExperimental interface {
 | 
			
		||||
	CheckpointAPIClient
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CheckpointAPIClient defines API client methods for the checkpoints
 | 
			
		||||
type CheckpointAPIClient interface {
 | 
			
		||||
	CheckpointCreate(ctx context.Context, container string, options checkpoint.CreateOptions) error
 | 
			
		||||
	CheckpointDelete(ctx context.Context, container string, options checkpoint.DeleteOptions) error
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/docker/docker/client/interface_stable.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/docker/docker/client/interface_stable.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
package client // import "github.com/docker/docker/client"
 | 
			
		||||
 | 
			
		||||
// APIClient is an interface that clients that talk with a docker server must implement.
 | 
			
		||||
type APIClient interface {
 | 
			
		||||
	CommonAPIClient
 | 
			
		||||
	apiClientExperimental
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ensure that Client always implements APIClient.
 | 
			
		||||
var _ APIClient = &Client{}
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/docker/docker/client/network_connect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/docker/docker/client/network_connect.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,16 +8,6 @@ import (
 | 
			
		||||
 | 
			
		||||
// NetworkConnect connects a container to an existent network in the docker host.
 | 
			
		||||
func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error {
 | 
			
		||||
	networkID, err := trimID("network", networkID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	containerID, err = trimID("container", containerID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	nc := network.ConnectOptions{
 | 
			
		||||
		Container:      containerID,
 | 
			
		||||
		EndpointConfig: config,
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user