vendor: update buildkit to 539be170
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
+1
@@ -1,3 +1,4 @@
|
||||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package api // import "github.com/docker/docker/api"
|
||||
|
||||
+268
-222
@@ -382,11 +382,13 @@ definitions:
|
||||
type: "string"
|
||||
description: |
|
||||
- Empty string means not to restart
|
||||
- `no` Do not automatically restart
|
||||
- `always` Always restart
|
||||
- `unless-stopped` Restart always except when the user has manually stopped the container
|
||||
- `on-failure` Restart only when the container exit code is non-zero
|
||||
enum:
|
||||
- ""
|
||||
- "no"
|
||||
- "always"
|
||||
- "unless-stopped"
|
||||
- "on-failure"
|
||||
@@ -744,6 +746,7 @@ definitions:
|
||||
description: |
|
||||
Health stores information about the container's healthcheck results.
|
||||
type: "object"
|
||||
x-nullable: true
|
||||
properties:
|
||||
Status:
|
||||
description: |
|
||||
@@ -769,13 +772,13 @@ definitions:
|
||||
description: |
|
||||
Log contains the last few results (oldest first)
|
||||
items:
|
||||
x-nullable: true
|
||||
$ref: "#/definitions/HealthcheckResult"
|
||||
|
||||
HealthcheckResult:
|
||||
description: |
|
||||
HealthcheckResult stores information about a single run of a healthcheck probe
|
||||
type: "object"
|
||||
x-nullable: true
|
||||
properties:
|
||||
Start:
|
||||
description: |
|
||||
@@ -2188,6 +2191,25 @@ definitions:
|
||||
type: "string"
|
||||
x-nullable: false
|
||||
|
||||
PluginPrivilege:
|
||||
description: |
|
||||
Describes a permission the user has to accept upon installing
|
||||
the plugin.
|
||||
type: "object"
|
||||
x-go-name: "PluginPrivilege"
|
||||
properties:
|
||||
Name:
|
||||
type: "string"
|
||||
example: "network"
|
||||
Description:
|
||||
type: "string"
|
||||
Value:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
example:
|
||||
- "host"
|
||||
|
||||
Plugin:
|
||||
description: "A plugin for the Engine API"
|
||||
type: "object"
|
||||
@@ -2970,19 +2992,7 @@ definitions:
|
||||
PluginPrivilege:
|
||||
type: "array"
|
||||
items:
|
||||
description: |
|
||||
Describes a permission accepted by the user upon installing the
|
||||
plugin.
|
||||
type: "object"
|
||||
properties:
|
||||
Name:
|
||||
type: "string"
|
||||
Description:
|
||||
type: "string"
|
||||
Value:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
$ref: "#/definitions/PluginPrivilege"
|
||||
ContainerSpec:
|
||||
type: "object"
|
||||
description: |
|
||||
@@ -4022,73 +4032,71 @@ definitions:
|
||||
Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
|
||||
|
||||
ContainerSummary:
|
||||
type: "array"
|
||||
items:
|
||||
type: "object"
|
||||
properties:
|
||||
Id:
|
||||
description: "The ID of this container"
|
||||
type: "object"
|
||||
properties:
|
||||
Id:
|
||||
description: "The ID of this container"
|
||||
type: "string"
|
||||
x-go-name: "ID"
|
||||
Names:
|
||||
description: "The names that this container has been given"
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
x-go-name: "ID"
|
||||
Names:
|
||||
description: "The names that this container has been given"
|
||||
type: "array"
|
||||
items:
|
||||
Image:
|
||||
description: "The name of the image used when creating this container"
|
||||
type: "string"
|
||||
ImageID:
|
||||
description: "The ID of the image that this container was created from"
|
||||
type: "string"
|
||||
Command:
|
||||
description: "Command to run when starting the container"
|
||||
type: "string"
|
||||
Created:
|
||||
description: "When the container was created"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
Ports:
|
||||
description: "The ports exposed by this container"
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/Port"
|
||||
SizeRw:
|
||||
description: "The size of files that have been created or changed by this container"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
SizeRootFs:
|
||||
description: "The total size of all the files in this container"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
Labels:
|
||||
description: "User-defined key/value metadata."
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
type: "string"
|
||||
State:
|
||||
description: "The state of this container (e.g. `Exited`)"
|
||||
type: "string"
|
||||
Status:
|
||||
description: "Additional human-readable status of this container (e.g. `Exit 0`)"
|
||||
type: "string"
|
||||
HostConfig:
|
||||
type: "object"
|
||||
properties:
|
||||
NetworkMode:
|
||||
type: "string"
|
||||
Image:
|
||||
description: "The name of the image used when creating this container"
|
||||
type: "string"
|
||||
ImageID:
|
||||
description: "The ID of the image that this container was created from"
|
||||
type: "string"
|
||||
Command:
|
||||
description: "Command to run when starting the container"
|
||||
type: "string"
|
||||
Created:
|
||||
description: "When the container was created"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
Ports:
|
||||
description: "The ports exposed by this container"
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/Port"
|
||||
SizeRw:
|
||||
description: "The size of files that have been created or changed by this container"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
SizeRootFs:
|
||||
description: "The total size of all the files in this container"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
Labels:
|
||||
description: "User-defined key/value metadata."
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
type: "string"
|
||||
State:
|
||||
description: "The state of this container (e.g. `Exited`)"
|
||||
type: "string"
|
||||
Status:
|
||||
description: "Additional human-readable status of this container (e.g. `Exit 0`)"
|
||||
type: "string"
|
||||
HostConfig:
|
||||
type: "object"
|
||||
properties:
|
||||
NetworkMode:
|
||||
type: "string"
|
||||
NetworkSettings:
|
||||
description: "A summary of the container's network settings"
|
||||
type: "object"
|
||||
properties:
|
||||
Networks:
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
$ref: "#/definitions/EndpointSettings"
|
||||
Mounts:
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/Mount"
|
||||
NetworkSettings:
|
||||
description: "A summary of the container's network settings"
|
||||
type: "object"
|
||||
properties:
|
||||
Networks:
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
$ref: "#/definitions/EndpointSettings"
|
||||
Mounts:
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/Mount"
|
||||
|
||||
Driver:
|
||||
description: "Driver represents a driver (network, logging, secrets)."
|
||||
@@ -4210,6 +4218,7 @@ definitions:
|
||||
ContainerState stores container's running state. It's part of ContainerJSONBase
|
||||
and will be returned by the "inspect" command.
|
||||
type: "object"
|
||||
x-nullable: true
|
||||
properties:
|
||||
Status:
|
||||
description: |
|
||||
@@ -4267,7 +4276,6 @@ definitions:
|
||||
type: "string"
|
||||
example: "2020-01-06T09:07:59.461876391Z"
|
||||
Health:
|
||||
x-nullable: true
|
||||
$ref: "#/definitions/Health"
|
||||
|
||||
SystemVersion:
|
||||
@@ -4366,7 +4374,6 @@ definitions:
|
||||
type: "string"
|
||||
example: "2020-06-22T15:49:27.000000000+00:00"
|
||||
|
||||
|
||||
SystemInfo:
|
||||
type: "object"
|
||||
properties:
|
||||
@@ -5199,6 +5206,158 @@ definitions:
|
||||
additionalProperties:
|
||||
type: "string"
|
||||
|
||||
EventActor:
|
||||
description: |
|
||||
Actor describes something that generates events, like a container, network,
|
||||
or a volume.
|
||||
type: "object"
|
||||
properties:
|
||||
ID:
|
||||
description: "The ID of the object emitting the event"
|
||||
type: "string"
|
||||
example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
|
||||
Attributes:
|
||||
description: |
|
||||
Various key/value attributes of the object, depending on its type.
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
type: "string"
|
||||
example:
|
||||
com.example.some-label: "some-label-value"
|
||||
image: "alpine:latest"
|
||||
name: "my-container"
|
||||
|
||||
EventMessage:
|
||||
description: |
|
||||
EventMessage represents the information an event contains.
|
||||
type: "object"
|
||||
title: "SystemEventsResponse"
|
||||
properties:
|
||||
Type:
|
||||
description: "The type of object emitting the event"
|
||||
type: "string"
|
||||
enum: ["builder", "config", "container", "daemon", "image", "network", "node", "plugin", "secret", "service", "volume"]
|
||||
example: "container"
|
||||
Action:
|
||||
description: "The type of event"
|
||||
type: "string"
|
||||
example: "create"
|
||||
Actor:
|
||||
$ref: "#/definitions/EventActor"
|
||||
scope:
|
||||
description: |
|
||||
Scope of the event. Engine events are `local` scope. Cluster (Swarm)
|
||||
events are `swarm` scope.
|
||||
type: "string"
|
||||
enum: ["local", "swarm"]
|
||||
time:
|
||||
description: "Timestamp of event"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 1629574695
|
||||
timeNano:
|
||||
description: "Timestamp of event, with nanosecond accuracy"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 1629574695515050031
|
||||
|
||||
OCIDescriptor:
|
||||
type: "object"
|
||||
x-go-name: Descriptor
|
||||
description: |
|
||||
A descriptor struct containing digest, media type, and size, as defined in
|
||||
the [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).
|
||||
properties:
|
||||
mediaType:
|
||||
description: |
|
||||
The media type of the object this schema refers to.
|
||||
type: "string"
|
||||
example: "application/vnd.docker.distribution.manifest.v2+json"
|
||||
digest:
|
||||
description: |
|
||||
The digest of the targeted content.
|
||||
type: "string"
|
||||
example: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96"
|
||||
size:
|
||||
description: |
|
||||
The size in bytes of the blob.
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 3987495
|
||||
# TODO Not yet including these fields for now, as they are nil / omitted in our response.
|
||||
# urls:
|
||||
# description: |
|
||||
# List of URLs from which this object MAY be downloaded.
|
||||
# type: "array"
|
||||
# items:
|
||||
# type: "string"
|
||||
# format: "uri"
|
||||
# annotations:
|
||||
# description: |
|
||||
# Arbitrary metadata relating to the targeted content.
|
||||
# type: "object"
|
||||
# additionalProperties:
|
||||
# type: "string"
|
||||
# platform:
|
||||
# $ref: "#/definitions/OCIPlatform"
|
||||
|
||||
OCIPlatform:
|
||||
type: "object"
|
||||
x-go-name: Platform
|
||||
description: |
|
||||
Describes the platform which the image in the manifest runs on, as defined
|
||||
in the [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).
|
||||
properties:
|
||||
architecture:
|
||||
description: |
|
||||
The CPU architecture, for example `amd64` or `ppc64`.
|
||||
type: "string"
|
||||
example: "arm"
|
||||
os:
|
||||
description: |
|
||||
The operating system, for example `linux` or `windows`.
|
||||
type: "string"
|
||||
example: "windows"
|
||||
os.version:
|
||||
description: |
|
||||
Optional field specifying the operating system version, for example on
|
||||
Windows `10.0.19041.1165`.
|
||||
type: "string"
|
||||
example: "10.0.19041.1165"
|
||||
os.features:
|
||||
description: |
|
||||
Optional field specifying an array of strings, each listing a required
|
||||
OS feature (for example on Windows `win32k`).
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
example:
|
||||
- "win32k"
|
||||
variant:
|
||||
description: |
|
||||
Optional field specifying a variant of the CPU, for example `v7` to
|
||||
specify ARMv7 when architecture is `arm`.
|
||||
type: "string"
|
||||
example: "v7"
|
||||
|
||||
DistributionInspect:
|
||||
type: "object"
|
||||
x-go-name: DistributionInspect
|
||||
title: "DistributionInspectResponse"
|
||||
required: [Descriptor, Platforms]
|
||||
description: |
|
||||
Describes the result obtained from contacting the registry to retrieve
|
||||
image metadata.
|
||||
properties:
|
||||
Descriptor:
|
||||
$ref: "#/definitions/OCIDescriptor"
|
||||
Platforms:
|
||||
type: "array"
|
||||
description: |
|
||||
An array containing all platforms supported by the image.
|
||||
items:
|
||||
$ref: "#/definitions/OCIPlatform"
|
||||
|
||||
paths:
|
||||
/containers/json:
|
||||
get:
|
||||
@@ -5261,7 +5420,9 @@ paths:
|
||||
200:
|
||||
description: "no error"
|
||||
schema:
|
||||
$ref: "#/definitions/ContainerSummary"
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/ContainerSummary"
|
||||
examples:
|
||||
application/json:
|
||||
- Id: "8dfafdbc3a40"
|
||||
@@ -5627,7 +5788,6 @@ paths:
|
||||
items:
|
||||
type: "string"
|
||||
State:
|
||||
x-nullable: true
|
||||
$ref: "#/definitions/ContainerState"
|
||||
Image:
|
||||
description: "The container's image ID"
|
||||
@@ -7505,6 +7665,18 @@ paths:
|
||||
Refer to the [authentication section](#section/Authentication) for
|
||||
details.
|
||||
type: "string"
|
||||
- name: "changes"
|
||||
in: "query"
|
||||
description: |
|
||||
Apply `Dockerfile` instructions to the image that is created,
|
||||
for example: `changes=ENV DEBUG=true`.
|
||||
Note that `ENV DEBUG=true` should be URI component encoded.
|
||||
|
||||
Supported `Dockerfile` instructions:
|
||||
`CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR`
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
- name: "platform"
|
||||
in: "query"
|
||||
description: "Platform in the format os[/arch[/variant]]"
|
||||
@@ -8179,44 +8351,7 @@ paths:
|
||||
200:
|
||||
description: "no error"
|
||||
schema:
|
||||
type: "object"
|
||||
title: "SystemEventsResponse"
|
||||
properties:
|
||||
Type:
|
||||
description: "The type of object emitting the event"
|
||||
type: "string"
|
||||
Action:
|
||||
description: "The type of event"
|
||||
type: "string"
|
||||
Actor:
|
||||
type: "object"
|
||||
properties:
|
||||
ID:
|
||||
description: "The ID of the object emitting the event"
|
||||
type: "string"
|
||||
Attributes:
|
||||
description: "Various key/value attributes of the object, depending on its type"
|
||||
type: "object"
|
||||
additionalProperties:
|
||||
type: "string"
|
||||
time:
|
||||
description: "Timestamp of event"
|
||||
type: "integer"
|
||||
timeNano:
|
||||
description: "Timestamp of event, with nanosecond accuracy"
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
examples:
|
||||
application/json:
|
||||
Type: "container"
|
||||
Action: "create"
|
||||
Actor:
|
||||
ID: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
|
||||
Attributes:
|
||||
com.example.some-label: "some-label-value"
|
||||
image: "alpine"
|
||||
name: "my-container"
|
||||
time: 1461943101
|
||||
$ref: "#/definitions/EventMessage"
|
||||
400:
|
||||
description: "bad parameter"
|
||||
schema:
|
||||
@@ -8531,6 +8666,7 @@ paths:
|
||||
description: "Exec configuration"
|
||||
schema:
|
||||
type: "object"
|
||||
title: "ExecConfig"
|
||||
properties:
|
||||
AttachStdin:
|
||||
type: "boolean"
|
||||
@@ -8621,6 +8757,7 @@ paths:
|
||||
in: "body"
|
||||
schema:
|
||||
type: "object"
|
||||
title: "ExecStartConfig"
|
||||
properties:
|
||||
Detach:
|
||||
type: "boolean"
|
||||
@@ -9155,6 +9292,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "NetworkCreateRequest"
|
||||
required: ["Name"]
|
||||
properties:
|
||||
Name:
|
||||
@@ -9265,6 +9403,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "NetworkConnectRequest"
|
||||
properties:
|
||||
Container:
|
||||
type: "string"
|
||||
@@ -9311,6 +9450,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "NetworkDisconnectRequest"
|
||||
properties:
|
||||
Container:
|
||||
type: "string"
|
||||
@@ -9395,20 +9535,7 @@ paths:
|
||||
schema:
|
||||
type: "array"
|
||||
items:
|
||||
description: |
|
||||
Describes a permission the user has to accept upon installing
|
||||
the plugin.
|
||||
type: "object"
|
||||
title: "PluginPrivilegeItem"
|
||||
properties:
|
||||
Name:
|
||||
type: "string"
|
||||
Description:
|
||||
type: "string"
|
||||
Value:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
$ref: "#/definitions/PluginPrivilege"
|
||||
example:
|
||||
- Name: "network"
|
||||
Description: ""
|
||||
@@ -9484,19 +9611,7 @@ paths:
|
||||
schema:
|
||||
type: "array"
|
||||
items:
|
||||
description: |
|
||||
Describes a permission accepted by the user upon installing the
|
||||
plugin.
|
||||
type: "object"
|
||||
properties:
|
||||
Name:
|
||||
type: "string"
|
||||
Description:
|
||||
type: "string"
|
||||
Value:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
$ref: "#/definitions/PluginPrivilege"
|
||||
example:
|
||||
- Name: "network"
|
||||
Description: ""
|
||||
@@ -9668,19 +9783,7 @@ paths:
|
||||
schema:
|
||||
type: "array"
|
||||
items:
|
||||
description: |
|
||||
Describes a permission accepted by the user upon installing the
|
||||
plugin.
|
||||
type: "object"
|
||||
properties:
|
||||
Name:
|
||||
type: "string"
|
||||
Description:
|
||||
type: "string"
|
||||
Value:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
$ref: "#/definitions/PluginPrivilege"
|
||||
example:
|
||||
- Name: "network"
|
||||
Description: ""
|
||||
@@ -9970,6 +10073,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "SwarmInitRequest"
|
||||
properties:
|
||||
ListenAddr:
|
||||
description: |
|
||||
@@ -10068,6 +10172,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "SwarmJoinRequest"
|
||||
properties:
|
||||
ListenAddr:
|
||||
description: |
|
||||
@@ -10228,6 +10333,7 @@ paths:
|
||||
required: true
|
||||
schema:
|
||||
type: "object"
|
||||
title: "SwarmUnlockRequest"
|
||||
properties:
|
||||
UnlockKey:
|
||||
description: "The swarm's unlock key."
|
||||
@@ -11339,67 +11445,7 @@ paths:
|
||||
200:
|
||||
description: "descriptor and platform information"
|
||||
schema:
|
||||
type: "object"
|
||||
x-go-name: DistributionInspect
|
||||
title: "DistributionInspectResponse"
|
||||
required: [Descriptor, Platforms]
|
||||
properties:
|
||||
Descriptor:
|
||||
type: "object"
|
||||
description: |
|
||||
A descriptor struct containing digest, media type, and size.
|
||||
properties:
|
||||
MediaType:
|
||||
type: "string"
|
||||
Size:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
Digest:
|
||||
type: "string"
|
||||
URLs:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
Platforms:
|
||||
type: "array"
|
||||
description: |
|
||||
An array containing all platforms supported by the image.
|
||||
items:
|
||||
type: "object"
|
||||
properties:
|
||||
Architecture:
|
||||
type: "string"
|
||||
OS:
|
||||
type: "string"
|
||||
OSVersion:
|
||||
type: "string"
|
||||
OSFeatures:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
Variant:
|
||||
type: "string"
|
||||
Features:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
examples:
|
||||
application/json:
|
||||
Descriptor:
|
||||
MediaType: "application/vnd.docker.distribution.manifest.v2+json"
|
||||
Digest: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96"
|
||||
Size: 3987495
|
||||
URLs:
|
||||
- ""
|
||||
Platforms:
|
||||
- Architecture: "amd64"
|
||||
OS: "linux"
|
||||
OSVersion: ""
|
||||
OSFeatures:
|
||||
- ""
|
||||
Variant: ""
|
||||
Features:
|
||||
- ""
|
||||
$ref: "#/definitions/DistributionInspect"
|
||||
401:
|
||||
description: "Failed authentication or no image found"
|
||||
schema:
|
||||
|
||||
+42
-27
@@ -13,19 +13,26 @@ import (
|
||||
// CgroupnsMode represents the cgroup namespace mode of the container
|
||||
type CgroupnsMode string
|
||||
|
||||
// cgroup namespace modes for containers
|
||||
const (
|
||||
CgroupnsModeEmpty CgroupnsMode = ""
|
||||
CgroupnsModePrivate CgroupnsMode = "private"
|
||||
CgroupnsModeHost CgroupnsMode = "host"
|
||||
)
|
||||
|
||||
// IsPrivate indicates whether the container uses its own private cgroup namespace
|
||||
func (c CgroupnsMode) IsPrivate() bool {
|
||||
return c == "private"
|
||||
return c == CgroupnsModePrivate
|
||||
}
|
||||
|
||||
// IsHost indicates whether the container shares the host's cgroup namespace
|
||||
func (c CgroupnsMode) IsHost() bool {
|
||||
return c == "host"
|
||||
return c == CgroupnsModeHost
|
||||
}
|
||||
|
||||
// IsEmpty indicates whether the container cgroup namespace mode is unset
|
||||
func (c CgroupnsMode) IsEmpty() bool {
|
||||
return c == ""
|
||||
return c == CgroupnsModeEmpty
|
||||
}
|
||||
|
||||
// Valid indicates whether the cgroup namespace mode is valid
|
||||
@@ -37,60 +44,69 @@ func (c CgroupnsMode) Valid() bool {
|
||||
// values are platform specific
|
||||
type Isolation string
|
||||
|
||||
// Isolation modes for containers
|
||||
const (
|
||||
IsolationEmpty Isolation = "" // IsolationEmpty is unspecified (same behavior as default)
|
||||
IsolationDefault Isolation = "default" // IsolationDefault is the default isolation mode on current daemon
|
||||
IsolationProcess Isolation = "process" // IsolationProcess is process isolation mode
|
||||
IsolationHyperV Isolation = "hyperv" // IsolationHyperV is HyperV isolation mode
|
||||
)
|
||||
|
||||
// IsDefault indicates the default isolation technology of a container. On Linux this
|
||||
// is the native driver. On Windows, this is a Windows Server Container.
|
||||
func (i Isolation) IsDefault() bool {
|
||||
return strings.ToLower(string(i)) == "default" || string(i) == ""
|
||||
// TODO consider making isolation-mode strict (case-sensitive)
|
||||
v := Isolation(strings.ToLower(string(i)))
|
||||
return v == IsolationDefault || v == IsolationEmpty
|
||||
}
|
||||
|
||||
// IsHyperV indicates the use of a Hyper-V partition for isolation
|
||||
func (i Isolation) IsHyperV() bool {
|
||||
return strings.ToLower(string(i)) == "hyperv"
|
||||
// TODO consider making isolation-mode strict (case-sensitive)
|
||||
return Isolation(strings.ToLower(string(i))) == IsolationHyperV
|
||||
}
|
||||
|
||||
// IsProcess indicates the use of process isolation
|
||||
func (i Isolation) IsProcess() bool {
|
||||
return strings.ToLower(string(i)) == "process"
|
||||
// TODO consider making isolation-mode strict (case-sensitive)
|
||||
return Isolation(strings.ToLower(string(i))) == IsolationProcess
|
||||
}
|
||||
|
||||
const (
|
||||
// IsolationEmpty is unspecified (same behavior as default)
|
||||
IsolationEmpty = Isolation("")
|
||||
// IsolationDefault is the default isolation mode on current daemon
|
||||
IsolationDefault = Isolation("default")
|
||||
// IsolationProcess is process isolation mode
|
||||
IsolationProcess = Isolation("process")
|
||||
// IsolationHyperV is HyperV isolation mode
|
||||
IsolationHyperV = Isolation("hyperv")
|
||||
)
|
||||
|
||||
// IpcMode represents the container ipc stack.
|
||||
type IpcMode string
|
||||
|
||||
// IpcMode constants
|
||||
const (
|
||||
IPCModeNone IpcMode = "none"
|
||||
IPCModeHost IpcMode = "host"
|
||||
IPCModeContainer IpcMode = "container"
|
||||
IPCModePrivate IpcMode = "private"
|
||||
IPCModeShareable IpcMode = "shareable"
|
||||
)
|
||||
|
||||
// IsPrivate indicates whether the container uses its own private ipc namespace which can not be shared.
|
||||
func (n IpcMode) IsPrivate() bool {
|
||||
return n == "private"
|
||||
return n == IPCModePrivate
|
||||
}
|
||||
|
||||
// IsHost indicates whether the container shares the host's ipc namespace.
|
||||
func (n IpcMode) IsHost() bool {
|
||||
return n == "host"
|
||||
return n == IPCModeHost
|
||||
}
|
||||
|
||||
// IsShareable indicates whether the container's ipc namespace can be shared with another container.
|
||||
func (n IpcMode) IsShareable() bool {
|
||||
return n == "shareable"
|
||||
return n == IPCModeShareable
|
||||
}
|
||||
|
||||
// IsContainer indicates whether the container uses another container's ipc namespace.
|
||||
func (n IpcMode) IsContainer() bool {
|
||||
parts := strings.SplitN(string(n), ":", 2)
|
||||
return len(parts) > 1 && parts[0] == "container"
|
||||
return strings.HasPrefix(string(n), string(IPCModeContainer)+":")
|
||||
}
|
||||
|
||||
// IsNone indicates whether container IpcMode is set to "none".
|
||||
func (n IpcMode) IsNone() bool {
|
||||
return n == "none"
|
||||
return n == IPCModeNone
|
||||
}
|
||||
|
||||
// IsEmpty indicates whether container IpcMode is empty
|
||||
@@ -105,9 +121,8 @@ func (n IpcMode) Valid() bool {
|
||||
|
||||
// Container returns the name of the container ipc stack is going to be used.
|
||||
func (n IpcMode) Container() string {
|
||||
parts := strings.SplitN(string(n), ":", 2)
|
||||
if len(parts) > 1 && parts[0] == "container" {
|
||||
return parts[1]
|
||||
if n.IsContainer() {
|
||||
return strings.TrimPrefix(string(n), string(IPCModeContainer)+":")
|
||||
}
|
||||
return ""
|
||||
}
|
||||
@@ -326,7 +341,7 @@ type LogMode string
|
||||
|
||||
// Available logging modes
|
||||
const (
|
||||
LogModeUnset = ""
|
||||
LogModeUnset LogMode = ""
|
||||
LogModeBlocking LogMode = "blocking"
|
||||
LogModeNonBlock LogMode = "non-blocking"
|
||||
)
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package container // import "github.com/docker/docker/api/types/container"
|
||||
|
||||
+20
-27
@@ -1,33 +1,26 @@
|
||||
package events // import "github.com/docker/docker/api/types/events"
|
||||
|
||||
// Type is used for event-types.
|
||||
type Type = string
|
||||
|
||||
// List of known event types.
|
||||
const (
|
||||
// BuilderEventType is the event type that the builder generates
|
||||
BuilderEventType = "builder"
|
||||
// ContainerEventType is the event type that containers generate
|
||||
ContainerEventType = "container"
|
||||
// DaemonEventType is the event type that daemon generate
|
||||
DaemonEventType = "daemon"
|
||||
// ImageEventType is the event type that images generate
|
||||
ImageEventType = "image"
|
||||
// NetworkEventType is the event type that networks generate
|
||||
NetworkEventType = "network"
|
||||
// PluginEventType is the event type that plugins generate
|
||||
PluginEventType = "plugin"
|
||||
// VolumeEventType is the event type that volumes generate
|
||||
VolumeEventType = "volume"
|
||||
// ServiceEventType is the event type that services generate
|
||||
ServiceEventType = "service"
|
||||
// NodeEventType is the event type that nodes generate
|
||||
NodeEventType = "node"
|
||||
// SecretEventType is the event type that secrets generate
|
||||
SecretEventType = "secret"
|
||||
// ConfigEventType is the event type that configs generate
|
||||
ConfigEventType = "config"
|
||||
BuilderEventType Type = "builder" // BuilderEventType is the event type that the builder generates.
|
||||
ConfigEventType Type = "config" // ConfigEventType is the event type that configs generate.
|
||||
ContainerEventType Type = "container" // ContainerEventType is the event type that containers generate.
|
||||
DaemonEventType Type = "daemon" // DaemonEventType is the event type that daemon generate.
|
||||
ImageEventType Type = "image" // ImageEventType is the event type that images generate.
|
||||
NetworkEventType Type = "network" // NetworkEventType is the event type that networks generate.
|
||||
NodeEventType Type = "node" // NodeEventType is the event type that nodes generate.
|
||||
PluginEventType Type = "plugin" // PluginEventType is the event type that plugins generate.
|
||||
SecretEventType Type = "secret" // SecretEventType is the event type that secrets generate.
|
||||
ServiceEventType Type = "service" // ServiceEventType is the event type that services generate.
|
||||
VolumeEventType Type = "volume" // VolumeEventType is the event type that volumes generate.
|
||||
)
|
||||
|
||||
// Actor describes something that generates events,
|
||||
// like a container, or a network, or a volume.
|
||||
// It has a defined name and a set or attributes.
|
||||
// It has a defined name and a set of attributes.
|
||||
// The container attributes are its labels, other actors
|
||||
// can generate these attributes from other properties.
|
||||
type Actor struct {
|
||||
@@ -39,11 +32,11 @@ type Actor struct {
|
||||
type Message struct {
|
||||
// Deprecated information from JSONMessage.
|
||||
// With data only in container events.
|
||||
Status string `json:"status,omitempty"`
|
||||
ID string `json:"id,omitempty"`
|
||||
From string `json:"from,omitempty"`
|
||||
Status string `json:"status,omitempty"` // Deprecated: use Action instead.
|
||||
ID string `json:"id,omitempty"` // Deprecated: use Actor.ID instead.
|
||||
From string `json:"from,omitempty"` // Deprecated: use Actor.Attributes["image"] instead.
|
||||
|
||||
Type string
|
||||
Type Type
|
||||
Action string
|
||||
Actor Actor
|
||||
// Engine events are local scope. Cluster events are swarm scope.
|
||||
|
||||
+3
@@ -8,6 +8,9 @@ import (
|
||||
// compare compares two version strings
|
||||
// returns -1 if v1 < v2, 1 if v1 > v2, 0 otherwise.
|
||||
func compare(v1, v2 string) int {
|
||||
if v1 == v2 {
|
||||
return 0
|
||||
}
|
||||
var (
|
||||
currTab = strings.Split(v1, ".")
|
||||
otherTab = strings.Split(v2, ".")
|
||||
|
||||
Reference in New Issue
Block a user