docker

package
v0.36.4 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2023 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultHost is the standard ipv4 looback
	DefaultHost = "127.0.0.1"

	// DefaultPort is used as the preferred port, and in the unlikly event of an
	// error querying the OS for a free port during allocation.
	DefaultPort = "8080"

	// DefaultDialTimeout when checking if a port is available.
	DefaultDialTimeout = 2 * time.Second

	// DefaultStopTimeout when attempting to stop underlying containers.
	DefaultStopTimeout = 10 * time.Second
)

Variables

View Source
var ErrNoDocker = errors.New("docker/podman API not available")

Functions

func GetPlatformImage

func GetPlatformImage(ref, platform string) (string, error)

GetPlatformImage returns image reference for specific platform. If the image is not multi-arch it returns ref argument directly (provided platform matches). If the image is multi-arch it returns digest based reference (provided the platform is part of the multi-arch image).

func GetRegistry

func GetRegistry(img string) (string, error)

func NewClient

func NewClient(defaultHost string) (dockerClient client.CommonAPIClient, dockerHostInRemote string, err error)

NewClient creates a new docker client. reads the DOCKER_HOST envvar but it may or may not return it as dockerHost.

  • For local connection (unix socket and windows named pipe) it returns the DOCKER_HOST directly.
  • For ssh connections it reads the DOCKER_HOST from the ssh remote.
  • For TCP connections it returns "" so it defaults in the remote (note that one should not be use client.DefaultDockerHost in this situation). This is needed beaus of TCP+tls connections.

func ParseDigest

func ParseDigest(output string) string

ParseDigest tries to parse the last line from the output, which holds the pushed image digest The output should contain line like this: latest: digest: sha256:a278a91112d17f8bde6b5f802a3317c7c752cf88078dae6f4b5a0784deb81782 size: 2613

Types

type Credentials

type Credentials struct {
	Username string
	Password string
}

func EmptyCredentialsProvider

func EmptyCredentialsProvider(ctx context.Context, registry string) (Credentials, error)

type CredentialsProvider

type CredentialsProvider func(ctx context.Context, image string) (Credentials, error)

type Opt

type Opt func(*Pusher)

func WithCredentialsProvider

func WithCredentialsProvider(cp CredentialsProvider) Opt

func WithProgressListener

func WithProgressListener(pl fn.ProgressListener) Opt

func WithPusherDockerClientFactory

func WithPusherDockerClientFactory(dockerClientFactory PusherDockerClientFactory) Opt

func WithTransport

func WithTransport(transport http.RoundTripper) Opt

func WithVerbose

func WithVerbose(verbose bool) Opt

type Pusher

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

Pusher of images from local to remote registry.

func NewPusher

func NewPusher(opts ...Opt) *Pusher

NewPusher creates an instance of a docker-based image pusher.

func (*Pusher) Push

func (n *Pusher) Push(ctx context.Context, f fn.Function) (digest string, err error)

Push the image of the function.

type PusherDockerClient

type PusherDockerClient interface {
	daemon.Client
	ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
	Close() error
}

PusherDockerClient is sub-interface of client.CommonAPIClient required by pusher.

type PusherDockerClientFactory

type PusherDockerClientFactory func() (PusherDockerClient, error)

type Runner

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

Runner starts and stops functions as local containers.

func NewRunner

func NewRunner(verbose bool, out, errOut io.Writer) *Runner

NewRunner creates an instance of a docker-backed runner.

func (*Runner) Run

func (n *Runner) Run(ctx context.Context, f fn.Function) (job *fn.Job, err error)

Run the function.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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