dockercompose

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2019 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusDown   = "down"
	StatusInProg = "in progress"
	StatusUp     = "up"
)

Three hacky states just for now to get something into the hud.

Variables

This section is empty.

Functions

func FormatError

func FormatError(cmd *exec.Cmd, stdout []byte, err error) error

Types

type Action

type Action string
const (

	// CONTAINER actions
	ActionAttach     Action = "attach"
	ActionCreate     Action = "create"
	ActionDie        Action = "die"
	ActionExecDie    Action = "exec_die"
	ActionExecAttach Action = "exec_attach"
	ActionExecCreate Action = "exec_create"
	ActionKill       Action = "kill"
	ActionRename     Action = "rename"
	ActionRestart    Action = "restart"
	ActionStart      Action = "start"
	ActionStop       Action = "stop"
	ActionUpdate     Action = "update"
)

func (*Action) UnmarshalJSON

func (a *Action) UnmarshalJSON(b []byte) error

type Attributes

type Attributes struct {
	Name  string `json:"name"`
	Image string `json:"image"`
}

type BuildConfig

type BuildConfig struct {
	Context    string `yaml:"context"`
	Dockerfile string `yaml:"dockerfile"`
}

type Config

type Config struct {
	Services map[string]ServiceConfig
}

Go representations of docker-compose.yml (Add fields as we need to support more things)

func (Config) GetService

func (c Config) GetService(name string) (Service, error)

func (*Config) UnmarshalYAML

func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error

We use a custom Unmarshal method here so that we can store the RawYAML in addition to unmarshaling the fields we care about into structs.

type DockerComposeClient

type DockerComposeClient interface {
	Up(ctx context.Context, configPath, serviceName string, stdout, stderr io.Writer) error
	Down(ctx context.Context, configPath string, stdout, stderr io.Writer) error
	StreamLogs(ctx context.Context, configPath, serviceName string) (io.ReadCloser, error)
	StreamEvents(ctx context.Context, configPath string) (<-chan string, error)
	Config(ctx context.Context, configPath string) (string, error)
	Services(ctx context.Context, configPath string) (string, error)
}

func NewDockerComposeClient

func NewDockerComposeClient() DockerComposeClient

TODO(dmiller): we might want to make this take a path to the docker-compose config so we don't have to keep passing it in.

type Event

type Event struct {
	Time       string     `json:"time"` // todo: time
	Type       Type       `json:"type"`
	Action     Action     `json:"action"`
	ID         string     `json:"id"` // todo: type?
	Service    string     `json:"service"`
	Attributes Attributes `json:"attributes"`
}

func EventFromJsonStr

func EventFromJsonStr(j string) (Event, error)

func (Event) GuessStatus

func (evt Event) GuessStatus() string

type FakeDCClient

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

func NewFakeDockerComposeClient

func NewFakeDockerComposeClient(t *testing.T) *FakeDCClient

func (*FakeDCClient) Config

func (c *FakeDCClient) Config(ctx context.Context, pathToConfig string) (string, error)

func (*FakeDCClient) Down

func (c *FakeDCClient) Down(ctx context.Context, pathToConfig string, stdout, stderr io.Writer) error

func (*FakeDCClient) SendEvent

func (c *FakeDCClient) SendEvent(evt Event) error

func (*FakeDCClient) Services

func (c *FakeDCClient) Services(ctx context.Context, pathToConfig string) (string, error)

func (*FakeDCClient) SetLogOutput

func (c *FakeDCClient) SetLogOutput(output string)

func (*FakeDCClient) StreamEvents

func (c *FakeDCClient) StreamEvents(ctx context.Context, pathToConfig string) (<-chan string, error)

func (*FakeDCClient) StreamLogs

func (c *FakeDCClient) StreamLogs(ctx context.Context, pathToConfig, serviceName string) (io.ReadCloser, error)

func (*FakeDCClient) Up

func (c *FakeDCClient) Up(ctx context.Context, pathToConfig, serviceName string, stdout, stderr io.Writer) error

type Service

type Service struct {
	Name    string
	Context string
	DfPath  string

	// Currently just use these to diff against when config files are edited to see if manifest has changed
	ServiceConfig []byte
	DfContents    []byte
}

A docker-compose service, according to Tilt.

func ParseConfig

func ParseConfig(ctx context.Context, configPath string) ([]Service, error)

func (Service) ToManifest

func (s Service) ToManifest(dcConfigPath string) (manifest model.Manifest,
	configFiles []string, err error)

type ServiceConfig

type ServiceConfig struct {
	RawYAML []byte      // We store this to diff against when docker-compose.yml is edited to see if the manifest has changed
	Build   BuildConfig `yaml:"build"`
}

type State

type State struct {
	Status     string
	CurrentLog []byte
}

func (State) Log

func (s State) Log() string

func (State) ResourceState

func (State) ResourceState()

func (State) WithCurrentLog

func (s State) WithCurrentLog(b []byte) State

func (State) WithStatus

func (s State) WithStatus(status string) State

type Type

type Type string

https://docs.docker.com/engine/reference/commandline/events/

const (
	// Add 'types' here (and to `UnmarshalJSON` below) as we support them
	TypeContainer Type = "container"
)

func (*Type) UnmarshalJSON

func (t *Type) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

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