docker

package
Version: v0.6.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2014 License: MPL-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const BuilderId = "packer.docker"

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

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

func (*Builder) Cancel

func (b *Builder) Cancel()

func (*Builder) Prepare

func (b *Builder) Prepare(raws ...interface{}) ([]string, error)

func (*Builder) Run

func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error)

type Communicator

type Communicator struct {
	ContainerId  string
	HostDir      string
	ContainerDir string
	// contains filtered or unexported fields
}

func (*Communicator) Download

func (c *Communicator) Download(src string, dst io.Writer) error

func (*Communicator) Start

func (c *Communicator) Start(remote *packer.RemoteCmd) error

func (*Communicator) Upload

func (c *Communicator) Upload(dst string, src io.Reader) error

func (*Communicator) UploadDir

func (c *Communicator) UploadDir(dst string, src string, exclude []string) error

type Config

type Config struct {
	common.PackerConfig `mapstructure:",squash"`

	ExportPath string `mapstructure:"export_path"`
	Image      string
	Pull       bool
	RunCommand []string `mapstructure:"run_command"`
	// contains filtered or unexported fields
}

func NewConfig

func NewConfig(raws ...interface{}) (*Config, []string, error)

type ContainerConfig

type ContainerConfig struct {
	Image      string
	RunCommand []string
	Volumes    map[string]string
}

ContainerConfig is the configuration used to start a container.

type DockerDriver

type DockerDriver struct {
	Ui  packer.Ui
	Tpl *packer.ConfigTemplate
}

func (*DockerDriver) DeleteImage added in v0.5.2

func (d *DockerDriver) DeleteImage(id string) error

func (*DockerDriver) Export

func (d *DockerDriver) Export(id string, dst io.Writer) error

func (*DockerDriver) Import added in v0.5.2

func (d *DockerDriver) Import(path string, repo string) (string, error)

func (*DockerDriver) Pull

func (d *DockerDriver) Pull(image string) error

func (*DockerDriver) Push added in v0.5.2

func (d *DockerDriver) Push(name string) error

func (*DockerDriver) StartContainer

func (d *DockerDriver) StartContainer(config *ContainerConfig) (string, error)

func (*DockerDriver) StopContainer

func (d *DockerDriver) StopContainer(id string) error

func (*DockerDriver) Verify

func (d *DockerDriver) Verify() error

type Driver

type Driver interface {
	// Delete an image that is imported into Docker
	DeleteImage(id string) error

	// Export exports the container with the given ID to the given writer.
	Export(id string, dst io.Writer) error

	// Import imports a container from a tar file
	Import(path, repo string) (string, error)

	// Pull should pull down the given image.
	Pull(image string) error

	// Push pushes an image to a Docker index/registry.
	Push(name string) error

	// StartContainer starts a container and returns the ID for that container,
	// along with a potential error.
	StartContainer(*ContainerConfig) (string, error)

	// StopContainer forcibly stops a container.
	StopContainer(id string) error

	// Verify verifies that the driver can run
	Verify() error
}

Driver is the interface that has to be implemented to communicate with Docker. The Driver interface also allows the steps to be tested since a mock driver can be shimmed in.

type ExportArtifact

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

ExportArtifact is an Artifact implementation for when a container is exported from docker into a single flat file.

func (*ExportArtifact) BuilderId

func (*ExportArtifact) BuilderId() string

func (*ExportArtifact) Destroy

func (a *ExportArtifact) Destroy() error

func (*ExportArtifact) Files

func (a *ExportArtifact) Files() []string

func (*ExportArtifact) Id

func (*ExportArtifact) Id() string

func (*ExportArtifact) String

func (a *ExportArtifact) String() string

type ImportArtifact added in v0.5.2

type ImportArtifact struct {
	BuilderIdValue string
	Driver         Driver
	IdValue        string
}

ImportArtifact is an Artifact implementation for when a container is exported from docker into a single flat file.

func (*ImportArtifact) BuilderId added in v0.5.2

func (a *ImportArtifact) BuilderId() string

func (*ImportArtifact) Destroy added in v0.5.2

func (a *ImportArtifact) Destroy() error

func (*ImportArtifact) Files added in v0.5.2

func (*ImportArtifact) Files() []string

func (*ImportArtifact) Id added in v0.5.2

func (a *ImportArtifact) Id() string

func (*ImportArtifact) String added in v0.5.2

func (a *ImportArtifact) String() string

type MockDriver

type MockDriver struct {
	DeleteImageCalled bool
	DeleteImageId     string
	DeleteImageErr    error

	ImportCalled bool
	ImportPath   string
	ImportRepo   string
	ImportId     string
	ImportErr    error

	PushCalled bool
	PushName   string
	PushErr    error

	ExportReader io.Reader
	ExportError  error
	PullError    error
	StartID      string
	StartError   error
	StopError    error
	VerifyError  error

	ExportCalled bool
	ExportID     string
	PullCalled   bool
	PullImage    string
	StartCalled  bool
	StartConfig  *ContainerConfig
	StopCalled   bool
	StopID       string
	VerifyCalled bool
}

MockDriver is a driver implementation that can be used for tests.

func (*MockDriver) DeleteImage added in v0.5.2

func (d *MockDriver) DeleteImage(id string) error

func (*MockDriver) Export

func (d *MockDriver) Export(id string, dst io.Writer) error

func (*MockDriver) Import added in v0.5.2

func (d *MockDriver) Import(path, repo string) (string, error)

func (*MockDriver) Pull

func (d *MockDriver) Pull(image string) error

func (*MockDriver) Push added in v0.5.2

func (d *MockDriver) Push(name string) error

func (*MockDriver) StartContainer

func (d *MockDriver) StartContainer(config *ContainerConfig) (string, error)

func (*MockDriver) StopContainer

func (d *MockDriver) StopContainer(id string) error

func (*MockDriver) Verify

func (d *MockDriver) Verify() error

type StepExport

type StepExport struct{}

StepExport exports the container to a flat tar file.

func (*StepExport) Cleanup

func (s *StepExport) Cleanup(state multistep.StateBag)

func (*StepExport) Run

type StepProvision

type StepProvision struct{}

func (*StepProvision) Cleanup

func (s *StepProvision) Cleanup(state multistep.StateBag)

func (*StepProvision) Run

type StepPull

type StepPull struct{}

func (*StepPull) Cleanup

func (s *StepPull) Cleanup(state multistep.StateBag)

func (*StepPull) Run

type StepRun

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

func (*StepRun) Cleanup

func (s *StepRun) Cleanup(state multistep.StateBag)

func (*StepRun) Run

type StepTempDir

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

StepTempDir creates a temporary directory that we use in order to share data with the docker container over the communicator.

func (*StepTempDir) Cleanup

func (s *StepTempDir) Cleanup(state multistep.StateBag)

func (*StepTempDir) Run

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL