dockercompose

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2019 License: Apache-2.0 Imports: 18 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

func (Event) IsStartupEvent added in v0.4.2

func (evt Event) IsStartupEvent() bool

type FakeDCClient

type FakeDCClient struct {
	RunLogOutput map[model.ManifestName]string
	// 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) 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
	StartTime  time.Time
}

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) WithStartTime added in v0.4.2

func (s State) WithStartTime(time time.Time) 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
JackTT - Gopher 🇻🇳