service

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2022 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

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.

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 Factory

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

Factory is an implementation of project.ServiceFactory.

func NewFactory

func NewFactory(context *ctx.Context) *Factory

NewFactory creates a new service factory for the given context

func (*Factory) Create

func (s *Factory) 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.

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 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 *ctx.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) Info

func (s *Service) Info(ctx context.Context) (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.

Jump to

Keyboard shortcuts

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