compose

package
v1.0.17 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// STARTING indicates that stack is being deployed
	STARTING string = "Starting"
	// RUNNING indicates that stack is deployed and services are running
	RUNNING string = "Running"
	// UPDATING indicates that some stack resources are being recreated
	UPDATING string = "Updating"
	// REMOVING indicates that stack is being deleted
	REMOVING string = "Removing"
	// UNKNOWN indicates unknown stack state
	UNKNOWN string = "Unknown"
	// FAILED indicates that stack deployment failed
	FAILED string = "Failed"
)
View Source
const (
	// RecreateDiverged to recreate services which configuration diverges from compose model
	RecreateDiverged = "diverged"
	// RecreateForce to force service container being recreated
	RecreateForce = "force"
	// RecreateNever to never recreate existing service containers
	RecreateNever = "never"
)
View Source
const (
	// ContainerEventLog is a ContainerEvent of type log. Line is set
	ContainerEventLog = iota
	// ContainerEventAttach is a ContainerEvent of type attach. First event sent about a container
	ContainerEventAttach
	// ContainerEventExit is a ContainerEvent of type exit. ExitCode is set
	ContainerEventExit
	// UserCancel user cancelled compose up, we are stopping containers
	UserCancel
)
View Source
const (
	// ProjectTag allow to track resource related to a compose project
	ProjectTag = "com.docker.compose.project"
	// NetworkTag allow to track resource related to a compose network
	NetworkTag = "com.docker.compose.network"
	// ServiceTag allow to track resource related to a compose service
	ServiceTag = "com.docker.compose.service"
	// VolumeTag allow to track resource related to a compose volume
	VolumeTag = "com.docker.compose.volume"
	// EnvironmentFileLabel is set in containers with the option "--env-file" when set
	EnvironmentFileLabel = "com.docker.compose.project.environment_file"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildOptions added in v1.0.10

type BuildOptions struct {
	// Pull always attempt to pull a newer version of the image
	Pull bool
	// Progress set type of progress output ("auto", "plain", "tty")
	Progress string
	// Args set build-time args
	Args types.MappingWithEquals
	// NoCache disables cache use
	NoCache bool
	// Quiet make the build process not output to the console
	Quiet bool
}

BuildOptions group options of the Build API

type ContainerEvent added in v1.0.9

type ContainerEvent struct {
	Type      int
	Container string
	Service   string
	Line      string
	// ContainerEventExit only
	ExitCode   int
	Restarting bool
}

ContainerEvent notify an event has been collected on source container implementing Service

type ContainerEventListener added in v1.0.9

type ContainerEventListener func(event ContainerEvent)

ContainerEventListener is a callback to process ContainerEvent from services

type ContainerProcSummary added in v1.0.10

type ContainerProcSummary struct {
	ID        string
	Name      string
	Processes [][]string
	Titles    []string
}

ContainerProcSummary holds container processes top data

type ContainerSummary added in v1.0.5

type ContainerSummary struct {
	ID         string
	Name       string
	Project    string
	Service    string
	State      string
	Health     string
	ExitCode   int
	Publishers []PortPublisher
}

ContainerSummary hold high-level description of a container

type ConvertOptions added in v1.0.6

type ConvertOptions struct {
	// Format define the output format used to dump converted application model (json|yaml)
	Format string
	// Output defines the path to save the application model
	Output string
}

ConvertOptions group options of the Convert API

type CopyOptions added in v1.0.15

type CopyOptions struct {
	Source      string
	Destination string
	All         bool
	Index       int
	FollowLink  bool
	CopyUIDGID  bool
}

CopyOptions group options of the cp API

type CreateOptions added in v1.0.7

type CreateOptions struct {
	// Services defines the services user interacts with
	Services []string
	// Remove legacy containers for services that are not defined in the project
	RemoveOrphans bool
	// Recreate define the strategy to apply on existing containers
	Recreate string
	// RecreateDependencies define the strategy to apply on dependencies services
	RecreateDependencies string
	// Inherit reuse anonymous volumes from previous container
	Inherit bool
	// Timeout set delay to wait for container to gracelfuly stop before sending SIGKILL
	Timeout *time.Duration
	// QuietPull makes the pulling process quiet
	QuietPull bool
}

CreateOptions group options of the Create API

type DownOptions added in v1.0.6

type DownOptions struct {
	// RemoveOrphans will cleanup containers that are not declared on the compose model but own the same labels
	RemoveOrphans bool
	// Project is the compose project used to define this app. Might be nil if user ran `down` just with project name
	Project *types.Project
	// Timeout override container stop timeout
	Timeout *time.Duration
	// Images remove image used by services. 'all': Remove all images. 'local': Remove only images that don't have a tag
	Images string
	// Volumes remove volumes, both declared in the `volumes` section and anonymous ones
	Volumes bool
}

DownOptions group options of the Down API

type Event added in v1.0.10

type Event struct {
	Timestamp  time.Time
	Service    string
	Container  string
	Status     string
	Attributes map[string]string
}

Event is a container runtime event served by Events API

func (Event) String added in v1.0.10

func (e Event) String() string

type EventsOptions added in v1.0.10

type EventsOptions struct {
	Services []string
	Consumer func(event Event) error
}

EventsOptions group options of the Events API

type ImageSummary added in v1.0.13

type ImageSummary struct {
	ID            string
	ContainerName string
	Repository    string
	Tag           string
	Size          int64
}

ImageSummary holds container image description

type ImagesOptions added in v1.0.13

type ImagesOptions struct {
	Services []string
}

ImagesOptions group options of the Images API

type Interceptor added in v1.0.16

type Interceptor func(ctx context.Context, project *types.Project)

Interceptor allow to customize the compose types.Project before the actual Service method is executed

type KillOptions added in v1.0.8

type KillOptions struct {
	// Signal to send to containers
	Signal string
}

KillOptions group options of the Kill API

type ListOptions added in v1.0.9

type ListOptions struct {
	All bool
}

ListOptions group options of the ls API

type LogConsumer added in v1.0.4

type LogConsumer interface {
	Log(service, container, message string)
	Status(container, msg string)
	Register(container string)
}

LogConsumer is a callback to process log messages from services

type LogOptions added in v1.0.6

type LogOptions struct {
	Services   []string
	Tail       string
	Follow     bool
	Timestamps bool
}

LogOptions defines optional parameters for the `Log` API

type LogPrinter added in v1.0.17

type LogPrinter interface {
	HandleEvent(event ContainerEvent)
	Run(cascadeStop bool, exitCodeFrom string, stopFn func() error) (int, error)
	Cancel()
}

LogPrinter watch application containers an collect their logs

func NewLogPrinter added in v1.0.17

func NewLogPrinter(consumer LogConsumer) LogPrinter

NewLogPrinter builds a LogPrinter passing containers logs to LogConsumer

type PauseOptions added in v1.0.13

type PauseOptions struct {
	// Services passed in the command line to be started
	Services []string
}

PauseOptions group options of the Pause API

type PortOptions added in v1.0.11

type PortOptions struct {
	Protocol string
	Index    int
}

PortOptions group options of the Port API

type PortPublisher

type PortPublisher struct {
	URL           string
	TargetPort    int
	PublishedPort int
	Protocol      string
}

PortPublisher hold status about published port

type PsOptions added in v1.0.8

type PsOptions struct {
	All      bool
	Services []string
}

PsOptions group options of the Ps API

type PullOptions added in v1.0.11

type PullOptions struct {
	IgnoreFailures bool
}

PullOptions group options of the Push API

type PushOptions added in v1.0.10

type PushOptions struct {
	IgnoreFailures bool
}

PushOptions group options of the Push API

type RemoveOptions added in v1.0.9

type RemoveOptions struct {
	// DryRun just list removable resources
	DryRun bool
	// Volumes remove anonymous volumes
	Volumes bool
	// Force don't ask to confirm removal
	Force bool
	// Services passed in the command line to be removed
	Services []string
}

RemoveOptions group options of the Remove API

type RestartOptions added in v1.0.11

type RestartOptions struct {
	// Timeout override container restart timeout
	Timeout *time.Duration
	// Services passed in the command line to be restarted
	Services []string
}

RestartOptions group options of the Restart API

type RunOptions added in v1.0.6

type RunOptions struct {
	Name              string
	Service           string
	Command           []string
	Entrypoint        []string
	Detach            bool
	AutoRemove        bool
	Writer            io.WriteCloser
	Reader            io.ReadCloser
	Tty               bool
	WorkingDir        string
	User              string
	Environment       []string
	Labels            types.Labels
	Privileged        bool
	UseNetworkAliases bool
	// used by exec
	Index int
}

RunOptions group options of the Run API

type Service

type Service interface {
	// Build executes the equivalent to a `compose build`
	Build(ctx context.Context, project *types.Project, options BuildOptions) error
	// Push executes the equivalent ot a `compose push`
	Push(ctx context.Context, project *types.Project, options PushOptions) error
	// Pull executes the equivalent of a `compose pull`
	Pull(ctx context.Context, project *types.Project, opts PullOptions) error
	// Create executes the equivalent to a `compose create`
	Create(ctx context.Context, project *types.Project, opts CreateOptions) error
	// Start executes the equivalent to a `compose start`
	Start(ctx context.Context, project *types.Project, options StartOptions) error
	// Restart restarts containers
	Restart(ctx context.Context, project *types.Project, options RestartOptions) error
	// Stop executes the equivalent to a `compose stop`
	Stop(ctx context.Context, project *types.Project, options StopOptions) error
	// Up executes the equivalent to a `compose up`
	Up(ctx context.Context, project *types.Project, options UpOptions) error
	// Down executes the equivalent to a `compose down`
	Down(ctx context.Context, projectName string, options DownOptions) error
	// Logs executes the equivalent to a `compose logs`
	Logs(ctx context.Context, projectName string, consumer LogConsumer, options LogOptions) error
	// Ps executes the equivalent to a `compose ps`
	Ps(ctx context.Context, projectName string, options PsOptions) ([]ContainerSummary, error)
	// List executes the equivalent to a `docker stack ls`
	List(ctx context.Context, options ListOptions) ([]Stack, error)
	// Convert translate compose model into backend's native format
	Convert(ctx context.Context, project *types.Project, options ConvertOptions) ([]byte, error)
	// Kill executes the equivalent to a `compose kill`
	Kill(ctx context.Context, project *types.Project, options KillOptions) error
	// RunOneOffContainer creates a service oneoff container and starts its dependencies
	RunOneOffContainer(ctx context.Context, project *types.Project, opts RunOptions) (int, error)
	// Remove executes the equivalent to a `compose rm`
	Remove(ctx context.Context, project *types.Project, options RemoveOptions) ([]string, error)
	// Exec executes a command in a running service container
	Exec(ctx context.Context, project *types.Project, opts RunOptions) (int, error)
	// Copy copies a file/folder between a service container and the local filesystem
	Copy(ctx context.Context, project *types.Project, opts CopyOptions) error
	// Pause executes the equivalent to a `compose pause`
	Pause(ctx context.Context, project string, options PauseOptions) error
	// UnPause executes the equivalent to a `compose unpause`
	UnPause(ctx context.Context, project string, options PauseOptions) error
	// Top executes the equivalent to a `compose top`
	Top(ctx context.Context, projectName string, services []string) ([]ContainerProcSummary, error)
	// Events executes the equivalent to a `compose events`
	Events(ctx context.Context, project string, options EventsOptions) error
	// Port executes the equivalent to a `compose port`
	Port(ctx context.Context, project string, service string, port int, options PortOptions) (string, int, error)
	// Images executes the equivalent of a `compose images`
	Images(ctx context.Context, projectName string, options ImagesOptions) ([]ImageSummary, error)
}

Service manages a compose project

type ServiceProxy added in v1.0.16

type ServiceProxy struct {
	BuildFn              func(ctx context.Context, project *types.Project, options BuildOptions) error
	PushFn               func(ctx context.Context, project *types.Project, options PushOptions) error
	PullFn               func(ctx context.Context, project *types.Project, opts PullOptions) error
	CreateFn             func(ctx context.Context, project *types.Project, opts CreateOptions) error
	StartFn              func(ctx context.Context, project *types.Project, options StartOptions) error
	RestartFn            func(ctx context.Context, project *types.Project, options RestartOptions) error
	StopFn               func(ctx context.Context, project *types.Project, options StopOptions) error
	UpFn                 func(ctx context.Context, project *types.Project, options UpOptions) error
	DownFn               func(ctx context.Context, projectName string, options DownOptions) error
	LogsFn               func(ctx context.Context, projectName string, consumer LogConsumer, options LogOptions) error
	PsFn                 func(ctx context.Context, projectName string, options PsOptions) ([]ContainerSummary, error)
	ListFn               func(ctx context.Context, options ListOptions) ([]Stack, error)
	ConvertFn            func(ctx context.Context, project *types.Project, options ConvertOptions) ([]byte, error)
	KillFn               func(ctx context.Context, project *types.Project, options KillOptions) error
	RunOneOffContainerFn func(ctx context.Context, project *types.Project, opts RunOptions) (int, error)
	RemoveFn             func(ctx context.Context, project *types.Project, options RemoveOptions) ([]string, error)
	ExecFn               func(ctx context.Context, project *types.Project, opts RunOptions) (int, error)
	CopyFn               func(ctx context.Context, project *types.Project, opts CopyOptions) error
	PauseFn              func(ctx context.Context, project string, options PauseOptions) error
	UnPauseFn            func(ctx context.Context, project string, options PauseOptions) error
	TopFn                func(ctx context.Context, projectName string, services []string) ([]ContainerProcSummary, error)
	EventsFn             func(ctx context.Context, project string, options EventsOptions) error
	PortFn               func(ctx context.Context, project string, service string, port int, options PortOptions) (string, int, error)
	ImagesFn             func(ctx context.Context, projectName string, options ImagesOptions) ([]ImageSummary, error)
	// contains filtered or unexported fields
}

ServiceProxy implements Service by delegating to implementation functions. This allows lazy init and per-method overrides

func NewServiceProxy added in v1.0.16

func NewServiceProxy() *ServiceProxy

NewServiceProxy produces a ServiceProxy

func (*ServiceProxy) Build added in v1.0.16

func (s *ServiceProxy) Build(ctx context.Context, project *types.Project, options BuildOptions) error

Build implements Service interface

func (*ServiceProxy) Convert added in v1.0.16

func (s *ServiceProxy) Convert(ctx context.Context, project *types.Project, options ConvertOptions) ([]byte, error)

Convert implements Service interface

func (*ServiceProxy) Copy added in v1.0.16

func (s *ServiceProxy) Copy(ctx context.Context, project *types.Project, options CopyOptions) error

Copy implements Service interface

func (*ServiceProxy) Create added in v1.0.16

func (s *ServiceProxy) Create(ctx context.Context, project *types.Project, options CreateOptions) error

Create implements Service interface

func (*ServiceProxy) Down added in v1.0.16

func (s *ServiceProxy) Down(ctx context.Context, project string, options DownOptions) error

Down implements Service interface

func (*ServiceProxy) Events added in v1.0.16

func (s *ServiceProxy) Events(ctx context.Context, project string, options EventsOptions) error

Events implements Service interface

func (*ServiceProxy) Exec added in v1.0.16

func (s *ServiceProxy) Exec(ctx context.Context, project *types.Project, options RunOptions) (int, error)

Exec implements Service interface

func (*ServiceProxy) Images added in v1.0.16

func (s *ServiceProxy) Images(ctx context.Context, project string, options ImagesOptions) ([]ImageSummary, error)

Images implements Service interface

func (*ServiceProxy) Kill added in v1.0.16

func (s *ServiceProxy) Kill(ctx context.Context, project *types.Project, options KillOptions) error

Kill implements Service interface

func (*ServiceProxy) List added in v1.0.16

func (s *ServiceProxy) List(ctx context.Context, options ListOptions) ([]Stack, error)

List implements Service interface

func (*ServiceProxy) Logs added in v1.0.16

func (s *ServiceProxy) Logs(ctx context.Context, project string, consumer LogConsumer, options LogOptions) error

Logs implements Service interface

func (*ServiceProxy) Pause added in v1.0.16

func (s *ServiceProxy) Pause(ctx context.Context, project string, options PauseOptions) error

Pause implements Service interface

func (*ServiceProxy) Port added in v1.0.16

func (s *ServiceProxy) Port(ctx context.Context, project string, service string, port int, options PortOptions) (string, int, error)

Port implements Service interface

func (*ServiceProxy) Ps added in v1.0.16

func (s *ServiceProxy) Ps(ctx context.Context, project string, options PsOptions) ([]ContainerSummary, error)

Ps implements Service interface

func (*ServiceProxy) Pull added in v1.0.16

func (s *ServiceProxy) Pull(ctx context.Context, project *types.Project, options PullOptions) error

Pull implements Service interface

func (*ServiceProxy) Push added in v1.0.16

func (s *ServiceProxy) Push(ctx context.Context, project *types.Project, options PushOptions) error

Push implements Service interface

func (*ServiceProxy) Remove added in v1.0.16

func (s *ServiceProxy) Remove(ctx context.Context, project *types.Project, options RemoveOptions) ([]string, error)

Remove implements Service interface

func (*ServiceProxy) Restart added in v1.0.16

func (s *ServiceProxy) Restart(ctx context.Context, project *types.Project, options RestartOptions) error

Restart implements Service interface

func (*ServiceProxy) RunOneOffContainer added in v1.0.16

func (s *ServiceProxy) RunOneOffContainer(ctx context.Context, project *types.Project, options RunOptions) (int, error)

RunOneOffContainer implements Service interface

func (*ServiceProxy) Start added in v1.0.16

func (s *ServiceProxy) Start(ctx context.Context, project *types.Project, options StartOptions) error

Start implements Service interface

func (*ServiceProxy) Stop added in v1.0.16

func (s *ServiceProxy) Stop(ctx context.Context, project *types.Project, options StopOptions) error

Stop implements Service interface

func (*ServiceProxy) Top added in v1.0.16

func (s *ServiceProxy) Top(ctx context.Context, project string, services []string) ([]ContainerProcSummary, error)

Top implements Service interface

func (*ServiceProxy) UnPause added in v1.0.16

func (s *ServiceProxy) UnPause(ctx context.Context, project string, options PauseOptions) error

UnPause implements Service interface

func (*ServiceProxy) Up added in v1.0.16

func (s *ServiceProxy) Up(ctx context.Context, project *types.Project, options UpOptions) error

Up implements Service interface

func (*ServiceProxy) WithInterceptor added in v1.0.16

func (s *ServiceProxy) WithInterceptor(interceptors ...Interceptor) *ServiceProxy

WithInterceptor configures Interceptor to be applied to Service method execution

func (*ServiceProxy) WithService added in v1.0.16

func (s *ServiceProxy) WithService(service Service) *ServiceProxy

WithService configure proxy to use specified Service as delegate

type ServiceStatus

type ServiceStatus struct {
	ID         string
	Name       string
	Replicas   int
	Desired    int
	Ports      []string
	Publishers []PortPublisher
}

ServiceStatus hold status about a service

type Stack

type Stack struct {
	ID     string
	Name   string
	Status string
	Reason string
}

Stack holds the name and state of a compose application/stack

type StartOptions added in v1.0.9

type StartOptions struct {
	// Attach will attach to service containers and send container logs and events
	Attach ContainerEventListener
	// Services passed in the command line to be started
	Services []string
}

StartOptions group options of the Start API

type StopOptions added in v1.0.9

type StopOptions struct {
	// Timeout override container stop timeout
	Timeout *time.Duration
	// Services passed in the command line to be stopped
	Services []string
}

StopOptions group options of the Stop API

type UpOptions added in v1.0.6

type UpOptions struct {
	// Detach will create services and return immediately
	Detach bool
	// QuietPull makes the pulling process quiet
	QuietPull bool
}

UpOptions group options of the Up API

Jump to

Keyboard shortcuts

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