docker

package
v0.0.0-...-81244f2 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2016 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const ComposeVersion = "1.5.0"

ComposeVersion is name of docker-compose.yml file syntax supported version

Variables

This section is empty.

Functions

func Convert

Convert converts a service configuration to an docker API structures (Config and HostConfig)

func DefaultDependentServices

func DefaultDependentServices(p *project.Project, s project.Service) []project.ServiceRelationship

DefaultDependentServices return the dependent services (as an array of ServiceRelationship) for the specified project and service. It looks for : links, volumesFrom, net and ipc configuration. It uses default project implementation and append some docker specific ones.

func Filter

func Filter(vs []string, f func(string) bool) []string

Filter filters the specified string slice with the specified function.

func GetContainerFromIpcLikeConfig

func GetContainerFromIpcLikeConfig(p *project.Project, conf string) string

GetContainerFromIpcLikeConfig returns name of the service that shares the IPC namespace with the specified service.

func NewProject

func NewProject(context *Context, parseOptions *config.ParseOptions) (project.APIProject, error)

NewProject creates a Project with the specified context.

Types

type ConfigWrapper

type ConfigWrapper struct {
	Config           *container.Config
	HostConfig       *container.HostConfig
	NetworkingConfig *network.NetworkingConfig
}

ConfigWrapper wraps Config, HostConfig and NetworkingConfig for a container.

func ConvertToAPI

func ConvertToAPI(serviceConfig *config.ServiceConfig, ctx project.Context, clientFactory composeclient.Factory) (*ConfigWrapper, error)

ConvertToAPI converts a service configuration to a docker API container configuration.

type Context

type Context struct {
	project.Context
	ClientFactory client.Factory
	ConfigDir     string
	ConfigFile    *configfile.ConfigFile
	AuthLookup    auth.Lookup
}

Context holds context meta information about a libcompose project and docker client information (like configuration file, builder to use, …)

func (*Context) LookupConfig

func (c *Context) LookupConfig() error

LookupConfig tries to load the docker configuration files, if any.

type Namer

type Namer interface {
	Next() (string, int)
}

Namer defines method to provide container name.

func NewNamer

func NewNamer(ctx context.Context, client client.ContainerAPIClient, project, service string, oneOff bool) (Namer, error)

NewNamer returns a namer that returns names based on the specified project and service name and an inner counter, e.g. project_service_1, project_service_2…

func NewSingleNamer

func NewSingleNamer(name string) Namer

NewSingleNamer returns a namer that only allows a single name.

type Project

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

Project implements project.RuntimeProject and define docker runtime specific methods.

func (*Project) RemoveOrphans

func (p *Project) RemoveOrphans(ctx context.Context, projectName string, serviceConfigs *config.ServiceConfigs) error

RemoveOrphans implements project.RuntimeProject.RemoveOrphans. It will remove orphan containers that are part of the project but not to any services.

type Service

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

Service is a project.Service implementations.

func NewService

func NewService(name string, serviceConfig *config.ServiceConfig, context *Context) *Service

NewService creates a service

func (*Service) Build

func (s *Service) Build(ctx context.Context, buildOptions options.Build) error

Build implements Service.Build. It will try to build the image and returns an error if any.

func (*Service) Config

func (s *Service) Config() *config.ServiceConfig

Config returns the configuration of the service (config.ServiceConfig).

func (*Service) Containers

func (s *Service) Containers(ctx context.Context) ([]project.Container, error)

Containers implements Service.Containers. It returns the list of containers that are related to the service.

func (*Service) Create

func (s *Service) Create(ctx context.Context, options options.Create) error

Create implements Service.Create. It ensures the image exists or build it if it can and then create a container.

func (*Service) Delete

func (s *Service) Delete(ctx context.Context, options options.Delete) error

Delete implements Service.Delete. It removes any containers related to the service.

func (*Service) DependentServices

func (s *Service) DependentServices() []project.ServiceRelationship

DependentServices returns the dependent services (as an array of ServiceRelationship) of the service.

func (*Service) Events

func (s *Service) Events(ctx context.Context, evts chan events.ContainerEvent) error

Events implements Service.Events. It listen to all real-time events happening for the service, and put them into the specified chan.

func (*Service) ImageExists

func (s *Service) ImageExists(ctx context.Context) (bool, error)

ImageExists returns whether or not the service image already exists

func (*Service) Info

func (s *Service) Info(ctx context.Context, qFlag bool) (project.InfoSet, error)

Info implements Service.Info. It returns an project.InfoSet with the containers related to this service (can be multiple if using the scale command).

func (*Service) Kill

func (s *Service) Kill(ctx context.Context, signal string) error

Kill implements Service.Kill. It kills any containers related to the service.

func (*Service) Log

func (s *Service) Log(ctx context.Context, follow bool) error

Log implements Service.Log. It returns the docker logs for each container related to the service.

func (*Service) Name

func (s *Service) Name() string

Name returns the service name.

func (*Service) NetworkConnect

func (s *Service) NetworkConnect(ctx context.Context, c *container.Container, net *yaml.Network, oneOff bool) error

NetworkConnect connects the container to the specified network FIXME(vdemeester) will be refactor with Container refactoring

func (*Service) NetworkDisconnect

func (s *Service) NetworkDisconnect(ctx context.Context, c *container.Container, net *yaml.Network, oneOff bool) error

NetworkDisconnect disconnects the container from the specified network

func (*Service) OutOfSync

func (s *Service) OutOfSync(ctx context.Context, c *container.Container) (bool, error)

OutOfSync checks if the container is out of sync with the service definition. It looks if the the service hash container label is the same as the computed one.

func (*Service) Pause

func (s *Service) Pause(ctx context.Context) error

Pause implements Service.Pause. It puts into pause the container(s) related to the service.

func (*Service) Pull

func (s *Service) Pull(ctx context.Context) error

Pull implements Service.Pull. It pulls the image of the service and skip the service that would need to be built.

func (*Service) RemoveImage

func (s *Service) RemoveImage(ctx context.Context, imageType options.ImageType) error

RemoveImage implements Service.RemoveImage. It removes images used for the service depending on the specified type.

func (*Service) Restart

func (s *Service) Restart(ctx context.Context, timeout int) error

Restart implements Service.Restart. It restarts any containers related to the service.

func (*Service) Run

func (s *Service) Run(ctx context.Context, commandParts []string, options options.Run) (int, error)

Run implements Service.Run. It runs a one of command within the service container. It always create a new container.

func (*Service) Scale

func (s *Service) Scale(ctx context.Context, scale int, timeout int) error

Scale implements Service.Scale. It creates or removes containers to have the specified number of related container to the service to run.

func (*Service) Start

func (s *Service) Start(ctx context.Context) error

Start implements Service.Start. It tries to start a container without creating it.

func (*Service) Stop

func (s *Service) Stop(ctx context.Context, timeout int) error

Stop implements Service.Stop. It stops any containers related to the service.

func (*Service) Unpause

func (s *Service) Unpause(ctx context.Context) error

Unpause implements Service.Pause. It brings back from pause the container(s) related to the service.

func (*Service) Up

func (s *Service) Up(ctx context.Context, options options.Up) error

Up implements Service.Up. It builds the image if needed, creates a container and start it.

type ServiceFactory

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

ServiceFactory is an implementation of project.ServiceFactory.

func (*ServiceFactory) Create

func (s *ServiceFactory) Create(project *project.Project, name string, serviceConfig *config.ServiceConfig) (project.Service, error)

Create creates a Service based on the specified project, name and service configuration.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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