docker

package
v0.0.0-...-7676619 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2020 License: Apache-2.0 Imports: 38 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 Filter

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

Filter filters the specified string slice with the specified function.

func GetContainer

func GetContainer(ctx context.Context, clientInstance client.APIClient, id string) (*types.ContainerJSON, error)

GetContainer looks up the hosts containers with the specified ID or name and returns it, or an error.

func GetContainersByFilter

func GetContainersByFilter(ctx context.Context, clientInstance client.APIClient, containerFilters ...map[string][]string) ([]types.Container, error)

GetContainersByFilter looks up the hosts containers with the specified filters and returns a list of container matching it, or an error.

func NewProject

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

NewProject creates a Project with the specified context.

Types

type AuthLookup

type AuthLookup interface {
	All() map[string]types.AuthConfig
	Lookup(repoInfo *registry.RepositoryInfo) types.AuthConfig
}

AuthLookup defines a method for looking up authentication information

type ConfigAuthLookup

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

ConfigAuthLookup implements AuthLookup by reading a Docker config file

func NewConfigAuthLookup

func NewConfigAuthLookup(context *Context) *ConfigAuthLookup

NewConfigAuthLookup creates a new ConfigAuthLookup for a given context

func (*ConfigAuthLookup) All

func (c *ConfigAuthLookup) All() map[string]types.AuthConfig

All uses a Docker config file to get all authentication information

func (*ConfigAuthLookup) Lookup

Lookup uses a Docker config file to lookup authentication information

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(s *Service) (*ConfigWrapper, error)

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

type Container

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

Container holds information about a docker container and the service it is tied on.

func NewContainer

func NewContainer(client client.APIClient, name string, containerNumber int, service *Service) *Container

NewContainer creates a container struct with the specified docker client, name and service.

func NewOneOffContainer

func NewOneOffContainer(client client.APIClient, name string, containerNumber int, service *Service) *Container

NewOneOffContainer creates a "oneoff" container struct with the specified docker client, name and service.

func (*Container) Create

func (c *Container) Create(ctx context.Context, imageName string) (*types.ContainerJSON, error)

Create creates the container based on the specified image name and send an event to notify the container has been created. If the container already exists, does nothing.

func (*Container) CreateWithOverride

func (c *Container) CreateWithOverride(ctx context.Context, imageName string, configOverride *config.ServiceConfig) (*types.ContainerJSON, error)

CreateWithOverride create container and override parts of the config to allow special situations to override the config generated from the compose file

func (*Container) Delete

func (c *Container) Delete(ctx context.Context, removeVolume bool) error

Delete removes the container if existing. If the container is running, it tries to stop it first.

func (*Container) ID

func (c *Container) ID() (string, error)

ID returns the container Id.

func (*Container) Info

func (c *Container) Info(ctx context.Context, qFlag bool) (project.Info, error)

Info returns info about the container, like name, command, state or ports.

func (*Container) IsRunning

func (c *Container) IsRunning(ctx context.Context) (bool, error)

IsRunning returns the running state of the container.

func (*Container) Kill

func (c *Container) Kill(ctx context.Context, signal string) error

Kill kill the container.

func (*Container) Log

func (c *Container) Log(ctx context.Context, follow bool) error

Log forwards container logs to the project configured logger.

func (*Container) Name

func (c *Container) Name() string

Name returns the container name.

func (*Container) OutOfSync

func (c *Container) OutOfSync(ctx context.Context, imageName string) (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 (*Container) Pause

func (c *Container) Pause(ctx context.Context) error

Pause pauses the container. If the containers are already paused, don't fail.

func (*Container) Port

func (c *Container) Port(ctx context.Context, port string) (string, error)

Port returns the host port the specified port is mapped on.

func (*Container) Recreate

func (c *Container) Recreate(ctx context.Context, imageName string) (*types.ContainerJSON, error)

Recreate will not refresh the container by means of relaxation and enjoyment, just delete it and create a new one with the current configuration

func (*Container) Restart

func (c *Container) Restart(ctx context.Context, timeout int) error

Restart restarts the container if existing, does nothing otherwise.

func (*Container) Run

func (c *Container) Run(ctx context.Context, imageName string, configOverride *config.ServiceConfig) (int, error)

Run creates, start and attach to the container based on the image name, the specified configuration. It will always create a new container.

func (*Container) Start

func (c *Container) Start(container *types.ContainerJSON) error

Start the specified container with the specified host config

func (*Container) Stop

func (c *Container) Stop(ctx context.Context, timeout int) error

Stop stops the container.

func (*Container) Unpause

func (c *Container) Unpause(ctx context.Context) error

Unpause unpauses the container. If the containers are not paused, don't fail.

func (*Container) Up

func (c *Container) Up(ctx context.Context, imageName string) error

Up creates and start the container based on the image name and send an event to notify the container has been created. If the container exists but is stopped it tries to start it.

type Context

type Context struct {
	project.Context
	ClientFactory project.ClientFactory
	ConfigDir     string
	ConfigFile    *cliconfig.ConfigFile
	AuthLookup    AuthLookup
}

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.APIClient, 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 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. If an imageName is specified or if the context has no build to work with it will do nothing. Otherwise 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) 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, net, ipv4 string, 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, net string, oneOff bool) error

NetworkDisconnect disconnects the container from the specified network

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) (int, error)

Run implements Service.Run. It runs a one of command within the service 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