mirror of
https://github.com/moby/moby.git
synced 2026-01-11 02:31:44 +00:00
Some methods currently support a single platform only, but we may be able to support multiple platforms. This patch prepares the option-structs for multi-platform support, but (for now) returning an error if multiple options are provided. We need a similar check on the daemon-side, but still need to check on the client, as older daemons will ignore multiple platforms, which may be unexpected. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
80 lines
2.5 KiB
Go
80 lines
2.5 KiB
Go
package client
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/moby/moby/api/types/build"
|
|
"github.com/moby/moby/api/types/container"
|
|
"github.com/moby/moby/api/types/registry"
|
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
|
)
|
|
|
|
// ImageBuildOptions holds the information
|
|
// necessary to build images.
|
|
type ImageBuildOptions struct {
|
|
Tags []string
|
|
SuppressOutput bool
|
|
RemoteContext string
|
|
NoCache bool
|
|
Remove bool
|
|
ForceRemove bool
|
|
PullParent bool
|
|
Isolation container.Isolation
|
|
CPUSetCPUs string
|
|
CPUSetMems string
|
|
CPUShares int64
|
|
CPUQuota int64
|
|
CPUPeriod int64
|
|
Memory int64
|
|
MemorySwap int64
|
|
CgroupParent string
|
|
NetworkMode string
|
|
ShmSize int64
|
|
Dockerfile string
|
|
Ulimits []*container.Ulimit
|
|
// BuildArgs needs to be a *string instead of just a string so that
|
|
// we can tell the difference between "" (empty string) and no value
|
|
// at all (nil). See the parsing of buildArgs in
|
|
// api/server/router/build/build_routes.go for even more info.
|
|
BuildArgs map[string]*string
|
|
AuthConfigs map[string]registry.AuthConfig
|
|
Context io.Reader
|
|
Labels map[string]string
|
|
// squash the resulting image's layers to the parent
|
|
// preserves the original image and creates a new one from the parent with all
|
|
// the changes applied to a single layer
|
|
Squash bool
|
|
// CacheFrom specifies images that are used for matching cache. Images
|
|
// specified here do not need to have a valid parent chain to match cache.
|
|
CacheFrom []string
|
|
SecurityOpt []string
|
|
ExtraHosts []string // List of extra hosts
|
|
Target string
|
|
SessionID string
|
|
// Platforms selects the platforms to build the image for. Multiple platforms
|
|
// can be provided if the daemon supports multi-platform builds.
|
|
Platforms []ocispec.Platform
|
|
// Version specifies the version of the underlying builder to use
|
|
Version build.BuilderVersion
|
|
// BuildID is an optional identifier that can be passed together with the
|
|
// build request. The same identifier can be used to gracefully cancel the
|
|
// build with the cancel request.
|
|
BuildID string
|
|
// Outputs defines configurations for exporting build results. Only supported
|
|
// in BuildKit mode
|
|
Outputs []ImageBuildOutput
|
|
}
|
|
|
|
// ImageBuildOutput defines configuration for exporting a build result
|
|
type ImageBuildOutput struct {
|
|
Type string
|
|
Attrs map[string]string
|
|
}
|
|
|
|
// ImageBuildResult holds information
|
|
// returned by a server after building
|
|
// an image.
|
|
type ImageBuildResult struct {
|
|
Body io.ReadCloser
|
|
}
|