compose

package
v2.30.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2024 License: Apache-2.0 Imports: 107 Imported by: 37

Documentation

Overview

Copyright 2020 Docker Compose CLI authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// ContainerCreated created status
	ContainerCreated = "created"
	// ContainerRestarting restarting status
	ContainerRestarting = "restarting"
	// ContainerRunning running status
	ContainerRunning = "running"
	// ContainerRemoving removing status
	ContainerRemoving = "removing"
	// ContainerPaused paused status
	ContainerPaused = "paused"
	// ContainerExited exited status
	ContainerExited = "exited"
	// ContainerDead dead status
	ContainerDead = "dead"
)
View Source
const (
	// APISource is sent for API metrics
	APISource = "api"
	// SuccessStatus command success
	SuccessStatus = "success"
	// FailureStatus command failure
	FailureStatus = "failure"
	// ComposeParseFailureStatus failure while parsing compose file
	ComposeParseFailureStatus = "failure-compose-parse"
	// FileNotFoundFailureStatus failure getting compose file
	FileNotFoundFailureStatus = "failure-file-not-found"
	// CommandSyntaxFailureStatus failure reading command
	CommandSyntaxFailureStatus = "failure-cmd-syntax"
	// BuildFailureStatus failure building image
	BuildFailureStatus = "failure-build"
	// PullFailureStatus failure pulling image
	PullFailureStatus = "failure-pull"
	// CanceledStatus command canceled
	CanceledStatus = "canceled"
)
View Source
const (
	PreparingPhase         = "Preparing"
	WaitingPhase           = "Waiting"
	PullingFsPhase         = "Pulling fs layer"
	DownloadingPhase       = "Downloading"
	DownloadCompletePhase  = "Download complete"
	ExtractingPhase        = "Extracting"
	VerifyingChecksumPhase = "Verifying Checksum"
	AlreadyExistsPhase     = "Already exists"
	PullCompletePhase      = "Pull complete"
)
View Source
const ServiceConditionRunningOrHealthy = "running_or_healthy"

ServiceConditionRunningOrHealthy is a service condition on status running or healthy

Variables

View Source
var (
	// FileNotFoundFailure failure for compose file not found
	FileNotFoundFailure = FailureCategory{MetricsStatus: FileNotFoundFailureStatus, ExitCode: 14}
	// ComposeParseFailure failure for composefile parse error
	ComposeParseFailure = FailureCategory{MetricsStatus: ComposeParseFailureStatus, ExitCode: 15}
	// CommandSyntaxFailure failure for command line syntax
	CommandSyntaxFailure = FailureCategory{MetricsStatus: CommandSyntaxFailureStatus, ExitCode: 16}
	// BuildFailure failure while building images.
	BuildFailure = FailureCategory{MetricsStatus: BuildFailureStatus, ExitCode: 17}
	// PullFailure failure while pulling image
	PullFailure = FailureCategory{MetricsStatus: PullFailureStatus, ExitCode: 18}
)

Functions

func ImageDigestResolver added in v2.24.7

func ImageDigestResolver(ctx context.Context, file *configfile.ConfigFile, apiClient client.APIClient) func(named reference.Named) (digest.Digest, error)

ImageDigestResolver creates a func able to resolve image digest from a docker ref,

func InDependencyOrder

func InDependencyOrder(ctx context.Context, project *types.Project, fn func(context.Context, string) error, options ...func(*graphTraversal)) error

InDependencyOrder applies the function to the services of the project taking in account the dependency order

func InReverseDependencyOrder

func InReverseDependencyOrder(ctx context.Context, project *types.Project, fn func(context.Context, string) error, options ...func(*graphTraversal)) error

InReverseDependencyOrder applies the function to the services of the project in reverse order of dependencies

func NewComposeService

func NewComposeService(dockerCli command.Cli) api.Service

NewComposeService create a local implementation of the compose.Service API

func ServiceHash

func ServiceHash(o types.ServiceConfig) (string, error)

ServiceHash computes the configuration hash for a service.

func ToMobyEnv

func ToMobyEnv(environment compose.MappingWithEquals) []string

ToMobyEnv convert into []string

func ToSeconds

func ToSeconds(d *compose.Duration) *int

ToSeconds convert into seconds

func WithRootNodesAndDown added in v2.19.0

func WithRootNodesAndDown(nodes []string) func(*graphTraversal)

func WrapCategorisedComposeError

func WrapCategorisedComposeError(err error, failure FailureCategory) error

WrapCategorisedComposeError wraps the error if not nil, otherwise returns nil

func WrapComposeError

func WrapComposeError(err error) error

WrapComposeError wraps the error if not nil, otherwise returns nil

Types

type ContainerStdin

type ContainerStdin struct {
	moby.HijackedResponse
}

ContainerStdin implement WriteCloser for moby.HijackedResponse

func (ContainerStdin) Close

func (c ContainerStdin) Close() error

Close implement io.WriteCloser

func (ContainerStdin) Write

func (c ContainerStdin) Write(p []byte) (n int, err error)

Write implement io.WriteCloser

type ContainerStdout

type ContainerStdout struct {
	moby.HijackedResponse
}

ContainerStdout implement ReadCloser for moby.HijackedResponse

func (ContainerStdout) Close

func (l ContainerStdout) Close() error

Close implement io.ReadCloser

func (ContainerStdout) Read

func (l ContainerStdout) Read(p []byte) (n int, err error)

Read implement io.ReadCloser

type Containers

type Containers []moby.Container

Containers is a set of moby Container

type Error

type Error struct {
	Err      error
	Category *FailureCategory
}

Error error to categorize failures and extract metrics info

func (Error) Error

func (e Error) Error() string

func (Error) GetMetricsFailureCategory

func (e Error) GetMetricsFailureCategory() FailureCategory

GetMetricsFailureCategory get metrics status and error code corresponding to this error

func (Error) Unwrap

func (e Error) Unwrap() error

Unwrap get underlying error

type FailureCategory

type FailureCategory struct {
	MetricsStatus string
	ExitCode      int
}

FailureCategory struct regrouping metrics failure status and specific exit code

func ByExitCode

func ByExitCode(exitCode int) FailureCategory

ByExitCode retrieve FailureCategory based on command exit code

type Graph

type Graph struct {
	Vertices map[string]*Vertex
	// contains filtered or unexported fields
}

Graph represents project as service dependencies

func NewGraph

func NewGraph(project *types.Project, initialStatus ServiceStatus) (*Graph, error)

NewGraph returns the dependency graph of the services

func (*Graph) AddEdge

func (g *Graph) AddEdge(source string, destination string) error

AddEdge adds a relationship of dependency between vertices `source` and `destination`

func (*Graph) AddVertex

func (g *Graph) AddVertex(key string, service string, initialStatus ServiceStatus)

AddVertex adds a vertex to the Graph

func (*Graph) FilterChildren

func (g *Graph) FilterChildren(key string, status ServiceStatus) []*Vertex

FilterChildren returns children of a certain vertex that are in a certain status

func (*Graph) FilterParents

func (g *Graph) FilterParents(key string, status ServiceStatus) []*Vertex

FilterParents returns the parents of a certain vertex that are in a certain status

func (*Graph) HasCycles

func (g *Graph) HasCycles() (bool, error)

HasCycles detects cycles in the graph

func (*Graph) Leaves

func (g *Graph) Leaves() []*Vertex

Leaves returns the slice of leaves of the graph

func (*Graph) Roots

func (g *Graph) Roots() []*Vertex

Roots returns the slice of "Roots" of the graph

func (*Graph) UpdateStatus

func (g *Graph) UpdateStatus(key string, status ServiceStatus)

UpdateStatus updates the status of a certain vertex

type ImagePruneMode added in v2.11.0

type ImagePruneMode string

ImagePruneMode controls how aggressively images associated with the project are removed from the engine.

const (
	// ImagePruneNone indicates that no project images should be removed.
	ImagePruneNone ImagePruneMode = ""
	// ImagePruneLocal indicates that only images built locally by Compose
	// should be removed.
	ImagePruneLocal ImagePruneMode = "local"
	// ImagePruneAll indicates that all project-associated images, including
	// remote images should be removed.
	ImagePruneAll ImagePruneMode = "all"
)

type ImagePruneOptions added in v2.11.0

type ImagePruneOptions struct {
	Mode ImagePruneMode

	// RemoveOrphans will result in the removal of images that were built for
	// the project regardless of whether they are for a known service if true.
	RemoveOrphans bool
}

ImagePruneOptions controls the behavior of image pruning.

type ImagePruner added in v2.11.0

type ImagePruner struct {
	// contains filtered or unexported fields
}

ImagePruner handles image removal during Compose `down` operations.

func NewImagePruner added in v2.11.0

func NewImagePruner(imageClient client.ImageAPIClient, project *types.Project) *ImagePruner

NewImagePruner creates an ImagePruner object for a project.

func (*ImagePruner) ImagesToPrune added in v2.11.0

func (p *ImagePruner) ImagesToPrune(ctx context.Context, opts ImagePruneOptions) ([]string, error)

ImagesToPrune returns the set of images that should be removed.

type ServiceStatus

type ServiceStatus int

ServiceStatus indicates the status of a service

const (
	ServiceStopped ServiceStatus = iota
	ServiceStarted
)

Services status flags

type Vertex

type Vertex struct {
	Key      string
	Service  string
	Status   ServiceStatus
	Children map[string]*Vertex
	Parents  map[string]*Vertex
}

Vertex represents a service in the dependencies structure

func NewVertex

func NewVertex(key string, service string, initialStatus ServiceStatus) *Vertex

NewVertex is the constructor function for the Vertex

func (*Vertex) GetChildren

func (v *Vertex) GetChildren() []*Vertex

GetChildren returns a slice with the child vertices of the Vertex

func (*Vertex) GetParents

func (v *Vertex) GetParents() []*Vertex

GetParents returns a slice with the parent vertices of the Vertex

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL