terraform/vendor/github.com/fsouza/go-dockerclient
Paul Hinze 6fe2703665 Vendor all dependencies w/ Godep
* Remove `make updatedeps` from Travis build. We'll follow up with more
   specific plans around dependency updating in subsequent PRs.
 * Update all `make` targets to set `GO15VENDOREXPERIMENT=1` and to
   filter out `/vendor/` from `./...` where appropriate.
 * Temporarily remove `vet` from the `make test` target until we can
   figure out how to get it to not vet `vendor/`. (Initial
   experimentation failed to yield the proper incantation.)

Everything is pinned to current master, with the exception of:

 * Azure/azure-sdk-for-go which is pinned before the breaking change today
 * aws/aws-sdk-go which is pinned to the most recent tag

The documentation still needs to be updated, which we can do in a follow
up PR. The goal here is to unblock release.
2016-01-29 15:08:48 -06:00
..
external Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
testing Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
.gitignore Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
.travis.yml Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
AUTHORS Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
DOCKER-LICENSE Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
LICENSE Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
Makefile Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
README.markdown Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
auth.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
auth_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
build_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
change.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
change_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
client.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
client_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
container.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
container_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
env.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
env_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
event.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
event_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
example_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
exec.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
exec_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
image.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
image_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
integration_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
misc.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
misc_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
network.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
network_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
signal.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
tar.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
tls.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
volume.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
volume_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00

README.markdown

go-dockerclient

Travis GoDoc

This package presents a client for the Docker remote API. It also provides support for the extensions in the Swarm API.

This package also provides support for docker's network API, which is a simple passthrough to the libnetwork remote API. Note that docker's network API is only available in docker 1.8 and above, and only enabled in docker if DOCKER_EXPERIMENTAL is defined during the docker build process.

For more details, check the remote API documentation.

Vendoring

If you are having issues with Go 1.5 and have GO15VENDOREXPERIMENT set with an application that has go-dockerclient vendored, please update your vendoring of go-dockerclient :) We recently moved the vendor directory to external so that go-dockerclient is compatible with this configuration. See 338 and 339 for details.

Example

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	endpoint := "unix:///var/run/docker.sock"
	client, _ := docker.NewClient(endpoint)
	imgs, _ := client.ListImages(docker.ListImagesOptions{All: false})
	for _, img := range imgs {
		fmt.Println("ID: ", img.ID)
		fmt.Println("RepoTags: ", img.RepoTags)
		fmt.Println("Created: ", img.Created)
		fmt.Println("Size: ", img.Size)
		fmt.Println("VirtualSize: ", img.VirtualSize)
		fmt.Println("ParentId: ", img.ParentID)
	}
}

Using with TLS

In order to instantiate the client for a TLS-enabled daemon, you should use NewTLSClient, passing the endpoint and path for key and certificates as parameters.

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	endpoint := "tcp://[ip]:[port]"
	path := os.Getenv("DOCKER_CERT_PATH")
	ca := fmt.Sprintf("%s/ca.pem", path)
	cert := fmt.Sprintf("%s/cert.pem", path)
	key := fmt.Sprintf("%s/key.pem", path)
	client, _ := docker.NewTLSClient(endpoint, cert, key, ca)
	// use client
}

If using docker-machine, or another application that exports environment variables DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH, you can use NewClientFromEnv.

package main

import (
	"fmt"

	"github.com/fsouza/go-dockerclient"
)

func main() {
	client, _ := docker.NewClientFromEnv()
	// use client
}

See the documentation for more details.

Developing

All development commands can be seen in the Makefile.

Commited code must pass:

Running make test will check all of these. If your editor does not automatically call gofmt, make fmt will format all go files in this repository.