github.com/demonoid81/moby@v0.0.0-20200517203328-62dd8e17c460/api/types/container/config.go (about) 1 package container // import "github.com/demonoid81/moby/api/types/container" 2 3 import ( 4 "time" 5 6 "github.com/demonoid81/moby/api/types/strslice" 7 "github.com/docker/go-connections/nat" 8 ) 9 10 // MinimumDuration puts a minimum on user configured duration. 11 // This is to prevent API error on time unit. For example, API may 12 // set 3 as healthcheck interval with intention of 3 seconds, but 13 // Docker interprets it as 3 nanoseconds. 14 const MinimumDuration = 1 * time.Millisecond 15 16 // HealthConfig holds configuration settings for the HEALTHCHECK feature. 17 type HealthConfig struct { 18 // Test is the test to perform to check that the container is healthy. 19 // An empty slice means to inherit the default. 20 // The options are: 21 // {} : inherit healthcheck 22 // {"NONE"} : disable healthcheck 23 // {"CMD", args...} : exec arguments directly 24 // {"CMD-SHELL", command} : run command with system's default shell 25 Test []string `json:",omitempty"` 26 27 // Zero means to inherit. Durations are expressed as integer nanoseconds. 28 Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks. 29 Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung. 30 StartPeriod time.Duration `json:",omitempty"` // The start period for the container to initialize before the retries starts to count down. 31 32 // Retries is the number of consecutive failures needed to consider a container as unhealthy. 33 // Zero means inherit. 34 Retries int `json:",omitempty"` 35 } 36 37 // Config contains the configuration data about a container. 38 // It should hold only portable information about the container. 39 // Here, "portable" means "independent from the host we are running on". 40 // Non-portable information *should* appear in HostConfig. 41 // All fields added to this struct must be marked `omitempty` to keep getting 42 // predictable hashes from the old `v1Compatibility` configuration. 43 type Config struct { 44 Hostname string // Hostname 45 Domainname string // Domainname 46 User string // User that will run the command(s) inside the container, also support user:group 47 AttachStdin bool // Attach the standard input, makes possible user interaction 48 AttachStdout bool // Attach the standard output 49 AttachStderr bool // Attach the standard error 50 ExposedPorts nat.PortSet `json:",omitempty"` // List of exposed ports 51 Tty bool // Attach standard streams to a tty, including stdin if it is not closed. 52 OpenStdin bool // Open stdin 53 StdinOnce bool // If true, close stdin after the 1 attached client disconnects. 54 Env []string // List of environment variable to set in the container 55 Cmd strslice.StrSlice // Command to run when starting the container 56 Healthcheck *HealthConfig `json:",omitempty"` // Healthcheck describes how to check the container is healthy 57 ArgsEscaped bool `json:",omitempty"` // True if command is already escaped (meaning treat as a command line) (Windows specific). 58 Image string // Name of the image as it was passed by the operator (e.g. could be symbolic) 59 Volumes map[string]struct{} // List of volumes (mounts) used for the container 60 WorkingDir string // Current directory (PWD) in the command will be launched 61 Entrypoint strslice.StrSlice // Entrypoint to run when starting the container 62 NetworkDisabled bool `json:",omitempty"` // Is network disabled 63 MacAddress string `json:",omitempty"` // Mac Address of the container 64 OnBuild []string // ONBUILD metadata that were defined on the image Dockerfile 65 Labels map[string]string // List of labels set to this container 66 StopSignal string `json:",omitempty"` // Signal to stop a container 67 StopTimeout *int `json:",omitempty"` // Timeout (in seconds) to stop a container 68 Shell strslice.StrSlice `json:",omitempty"` // Shell for shell-form of RUN, CMD, ENTRYPOINT 69 }