Documentation ¶
Index ¶
- Constants
- func CheckImages(cli Client, opts ...ImageOption) error
- func SliceToSet(slice []string) map[string]struct{}
- type AddrsMap
- type BaseContainer
- func (c *BaseContainer) ContainerAddrs() AddrsMap
- func (c *BaseContainer) ContainerPorts() []Port
- func (c *BaseContainer) CreateContainer() error
- func (c *BaseContainer) GetAutoremove() bool
- func (c *BaseContainer) GetClient() Client
- func (c *BaseContainer) GetCmd() []string
- func (c *BaseContainer) GetContainerIP() string
- func (c *BaseContainer) GetEntryPoint() string
- func (c *BaseContainer) GetEnvs() []string
- func (c *BaseContainer) GetID() string
- func (c *BaseContainer) GetImage() string
- func (c *BaseContainer) GetMounts() []string
- func (c *BaseContainer) GetName() string
- func (c *BaseContainer) GetNetwork() Network
- func (c *BaseContainer) GetSysctls() map[string]string
- func (c *BaseContainer) GetVolumes() []string
- func (c *BaseContainer) HostAddrs() AddrsMap
- func (c *BaseContainer) HostIP() string
- func (c *BaseContainer) HostPort(name ports.PortName) string
- func (c *BaseContainer) LogError(err error, args ...any) bool
- func (c *BaseContainer) LogStderr(format string, args ...any) bool
- func (c *BaseContainer) LogStdout(format string, args ...any) bool
- func (c *BaseContainer) PortMap() PortMap
- func (c *BaseContainer) StartContainer(sigCh <-chan os.Signal, ready chan<- struct{}) error
- func (c *BaseContainer) Stop() error
- type Client
- type Container
- type ContainerInfo
- type ContainerStatus
- type EndpointSettings
- type ImageBuildData
- type ImageBuildPreparer
- type ImageOption
- type ImageOptions
- type Images
- type Network
- type OrchestratorInfo
- type Port
- type PortBind
- type PortBinding
- type PortBinds
- type PortMap
- type ReadyFunc
Constants ¶
const ( ErrContainerExitedBeforeReady = errors.Const("container exited before ready") ErrContainerAlreadyStoped = errors.Const("container already stopped") ErrContainerDidntStart = errors.Const("container did not start") StartTimeoutFactorEnvar = "DEBUG_START_TIMEOUT_FACTOR" )
Общие настройки контейнера
Variables ¶
This section is empty.
Functions ¶
func CheckImages ¶
func CheckImages(cli Client, opts ...ImageOption) error
func SliceToSet ¶
Types ¶
type BaseContainer ¶
type BaseContainer struct { Ctx context.Context Ready ReadyFunc OutputStream io.Writer ErrorStream io.Writer Name string TypeID uint8 Image string EntryPoint string ContainerIP string Cmd []string Mounts []string Envs []string Volumes []string Sysctls map[string]string DebugPort ports.DebugPort Ports PortBinds StartTimeout time.Duration Autoremove bool NotBindPorts bool Background bool ConfController envs.Controller // contains filtered or unexported fields }
BaseContainer - базовый тип обертки над нативным docker container nolint:maligned
func NewBaseContainer ¶
func NewBaseContainer(cli Client, nw Network, confCtl envs.Controller) *BaseContainer
NewBaseContainer - конструктор базового контейнера
func (*BaseContainer) ContainerAddrs ¶
func (c *BaseContainer) ContainerAddrs() AddrsMap
ContainerAddrs возвращает список эндпоинтов контейнера
func (*BaseContainer) ContainerPorts ¶
func (c *BaseContainer) ContainerPorts() []Port
func (*BaseContainer) CreateContainer ¶
func (c *BaseContainer) CreateContainer() error
CreateContainer конфигурирует и создает контейнер
func (*BaseContainer) GetAutoremove ¶
func (c *BaseContainer) GetAutoremove() bool
func (*BaseContainer) GetClient ¶
func (c *BaseContainer) GetClient() Client
GetClient - возвращает клиента среды исполнения контейнера
func (*BaseContainer) GetCmd ¶
func (c *BaseContainer) GetCmd() []string
func (*BaseContainer) GetContainerIP ¶
func (c *BaseContainer) GetContainerIP() string
func (*BaseContainer) GetEntryPoint ¶
func (c *BaseContainer) GetEntryPoint() string
func (*BaseContainer) GetEnvs ¶
func (c *BaseContainer) GetEnvs() []string
func (*BaseContainer) GetID ¶
func (c *BaseContainer) GetID() string
GetID - возвращает идентификатор запущенного контейнера после его создания
func (*BaseContainer) GetImage ¶
func (c *BaseContainer) GetImage() string
func (*BaseContainer) GetMounts ¶
func (c *BaseContainer) GetMounts() []string
func (*BaseContainer) GetName ¶
func (c *BaseContainer) GetName() string
GetName - возвращает имя контейнера
func (*BaseContainer) GetNetwork ¶
func (c *BaseContainer) GetNetwork() Network
func (*BaseContainer) GetSysctls ¶
func (c *BaseContainer) GetSysctls() map[string]string
func (*BaseContainer) GetVolumes ¶
func (c *BaseContainer) GetVolumes() []string
func (*BaseContainer) HostAddrs ¶
func (c *BaseContainer) HostAddrs() AddrsMap
HostAddrs возвращает список эндпоинтов хоста
func (*BaseContainer) HostIP ¶
func (c *BaseContainer) HostIP() string
HostIP - возвращает IP хоста ссети для текущего контейнера
func (*BaseContainer) HostPort ¶
func (c *BaseContainer) HostPort(name ports.PortName) string
HostPort - возвращает фактический порт по имени порта
func (*BaseContainer) LogError ¶
func (c *BaseContainer) LogError(err error, args ...any) bool
LogError пишет ошибку сообщение во writer потока стандартного вывода ошибок контейнера
func (*BaseContainer) LogStderr ¶
func (c *BaseContainer) LogStderr(format string, args ...any) bool
LogStderr пишет сообщение во writer потока стандартного вывода ошибок контейнера
func (*BaseContainer) LogStdout ¶
func (c *BaseContainer) LogStdout(format string, args ...any) bool
LogStdout пишет сообщение во writer потока стандартного вывода контейнера
func (*BaseContainer) PortMap ¶
func (c *BaseContainer) PortMap() PortMap
func (*BaseContainer) StartContainer ¶
func (c *BaseContainer) StartContainer(sigCh <-chan os.Signal, ready chan<- struct{}) error
StartContainer непосредственно запускает контейнер
type Client ¶
type Client interface { // WithStdout устанавливает кастомный поток стандартного вывода WithStdout(w io.Writer) Client // WithStderr устанавливает кастомный поток вывода ошибок WithStderr(w io.Writer) Client // IsInContainer - возвращает признак того что процесс сам запущен // внутри контейнера IsInContainer() bool // NetworkList возвращает список сетей NetworkList(ctx context.Context) ([]*net.IPNet, error) // NextSubnet возвращает адрес следующей незанятой подсети NextSubnet() (*net.IPNet, error) // RemoveNetwork удаляет пользовательскую сеть RemoveNetwork(id string) error // ContainerCreate создает контейнер ContainerCreate(ctx context.Context, data Container) (string, error) // ContainerStart запускает контейнер ContainerStart(ctx context.Context, id, name string) (*ContainerInfo, error) // ContainerWait ожидает завершения работы контейнера ContainerWait(ctx context.Context, id string) (<-chan ContainerStatus, <-chan error) // ContainerStop останавливает контейнер ContainerStop(ctx context.Context, id string, timeout time.Duration) error // StreamLogs подключает вывод логов контейнера StreamLogs(ctx context.Context, id string, stderr, stdout io.Writer, follow bool) error // FindImageLocal - осуществляет поиск образа в локальном сторе FindImageLocal(ctx context.Context, image string) (bool, error) // PullImage - скачивает образ в локальный стор PullImage(image string) error // RemoveImage - удаляет образ из локального стора RemoveImage(image string) // BuildImage - собирает образ BuildImage(data *ImageBuildData) error // CheckNetwork проверяет существование сети и создает // ее в случае отсутствия CheckNetwork(nw, cidr string) (Network, error) }
Container - интерфейс работы с docker-контейнером
type Container ¶
type Container interface { // GetClient - возвращает клиента среды исполнения контейнера GetClient() Client // GetID возвращает идентификатор запущенного контейнера после его создания GetID() string // GetName возвращает имя контейнера GetName() string // GetImage возвращает образ GetImage() string // GetSysctls возвращает данные системных настроек контейнера GetSysctls() map[string]string // GetContainerIP возвращает внутренний IP адрес контейнера GetContainerIP() string // ContainerPorts возвращает список внутренних портов контейнера ContainerPorts() []Port // PortMap возвращает смапленные на хост порты PortMap() PortMap // GetEnvs возвращает список переменных окружения GetEnvs() []string // GetEntryPoint возвращает точку схода процесса контейнера GetEntryPoint() string // GetCmd возвращает команду контейнера GetCmd() []string // GetVolumes возвращает список разделов GetVolumes() []string // GetMounts возвращает список подключаемых разделов GetMounts() []string // GetAutoremove признак авто удаления контейнера после завершения работы GetAutoremove() bool // GetNetwork возвращает сеть контейнера GetNetwork() Network // CreateContainer - фаза создания контейнера CreateContainer() error // StartContainer - фаза старта контейнера StartContainer(sigCh <-chan os.Signal, ready chan<- struct{}) error // Stop - останавливает контейнер Stop() error // HostAddrs - возвращает мапу адресов контейнера на хосте HostAddrs() AddrsMap // ContainerAddrs - возвращает мапу адресов контейнера ContainerAddrs() AddrsMap // LogStdout пишет сообщение во writer потока стандартного вывода контейнера LogStdout(format string, args ...any) bool // LogStderr пишет сообщение во writer потока стандартного вывода ошибок контейнера LogStderr(format string, args ...any) bool // LogError пишет ошибку сообщение во writer потока стандартного вывода ошибок контейнера LogError(err error, args ...any) bool }
Container - интерфейс работы с docker-контейнером
type ContainerInfo ¶
type ContainerInfo struct { ID string IPAddress string PortBinds PortMap Networks map[string]EndpointSettings }
type ContainerStatus ¶
type EndpointSettings ¶
type EndpointSettings struct {
IPAddress string
}
type ImageBuildData ¶
type ImageBuildData struct { Tags []string Args map[string]*string Root string Dockerfile string Nocache bool ClearRoot bool Output io.Writer }
ImageBuildData - данные необходимые для сборки образа
type ImageBuildPreparer ¶
type ImageBuildPreparer func() (*ImageBuildData, error)
ImageBuildPreparer - колбэк, подготавливающий данные для билдера
type ImageOption ¶
type ImageOption func(o *ImageOptions)
ImageOption - опция действия при отсутствии указанного образа
func WithBuildImage ¶
func WithBuildImage(preparer ImageBuildPreparer, forceBuild bool) ImageOption
WithBuildImage - опция сборки образа при его отсутствии
func WithPullImage ¶
func WithPullImage(tag string) ImageOption
WithPullImage - опция скачивания образа при его отсутствии
type ImageOptions ¶
type ImageOptions struct { Tags []string Data *ImageBuildData Err error ForceBuild bool Pull bool }
ImageOptions опционал действий при отсутствии указанного докер образа
type Images ¶
type Images map[string]ImageOption
Images пакет имен образов и опций их подготовки (скачивание, сборка, etc)
type Network ¶
type Network interface { // ID возвращает идентификатор сети ID() string // Name возвращает имя сети Name() string // Gateway возвращает шлюз сети Gateway() string // HostIP возвращает адрес хоста HostIP() string // NextIP возвращает следующий не занятый IP-адрес сети NextIP() string // AddContainer добавляет данные контейнера AddContainer(info *OrchestratorInfo) }
Container - интерфейс работы с docker-контейнером
type OrchestratorInfo ¶
type OrchestratorInfo struct { ID string `json:"id"` TypeID uint8 `json:"type_id"` ContainerEnpoints AddrsMap `json:"container_enpoints"` HostEnpoints AddrsMap `json:"host_enpoints"` }
OrchestratorInfo - информация о контейнере в представлении оркестратора
type PortBinding ¶
type PortMap ¶
type PortMap map[Port][]PortBinding