Documentation ¶
Overview ¶
Package docker provides a Docker driver for Fn. Provides an implementation of
github.com/fnproject/fn/api/agent/drivers.Driver
that knows how to run Docker images.
Index ¶
Constants ¶
const ( LimitPerSec = 10 LimitBurst = 20 ShutdownTimeout = time.Duration(1) * time.Second )
Variables ¶
var (
ErrorPoolEmpty = errors.New("docker pre fork pool empty")
)
Functions ¶
This section is empty.
Types ¶
type Auther ¶
type Auther interface { // DockerAuth should return docker auth credentials that will authenticate // against a docker registry for a given drivers.ContainerTask.Image(). An // error may be returned which will cause the task not to be run, this can be // useful for an implementer to do things like testing auth configurations // before returning them; e.g. if the implementer would like to impose // certain restrictions on images or if credentials must be acquired right // before runtime and there's an error doing so. If these credentials don't // work, the docker pull will fail and the task will be set to error status. DockerAuth() (docker.AuthConfiguration, error) }
A drivers.ContainerTask should implement the Auther interface if it would like to use not-necessarily-public docker images for any or all task invocations.
type DockerDriver ¶
type DockerDriver struct {
// contains filtered or unexported fields
}
func (*DockerDriver) Close ¶
func (drv *DockerDriver) Close() error
func (*DockerDriver) Prepare ¶
func (drv *DockerDriver) Prepare(ctx context.Context, task drivers.ContainerTask) (drivers.Cookie, error)
type DockerPool ¶
type DockerPool interface { // fetch a pre-allocated free id from the pool // may return too busy error. AllocPoolId() (string, error) // Release the id back to the pool FreePoolId(id string) // stop and terminate the pool Close() error // returns inuse versus free Usage() DockerPoolStats }
func NewDockerPool ¶
func NewDockerPool(conf drivers.Config, driver *DockerDriver) DockerPool
type DockerPoolStats ¶
type DockerPoolStats struct {
// contains filtered or unexported fields
}
type PoolTaskStateType ¶
type PoolTaskStateType int
const ( PoolTaskStateInit PoolTaskStateType = iota // initializing PoolTaskStateReady // ready to be run )
type Sizer ¶
Sizer returns size information. This interface is liable to contain more than a size at some point, change as needed.
func CheckRegistry ¶
func CheckRegistry(ctx context.Context, image string, config docker.AuthConfiguration) (Sizer, error)
CheckRegistry will return a sizer, which can be used to check the size of an image if the returned error is nil. If the error returned is nil, then authentication against the given credentials was successful, if the configuration or image do not specify a config.ServerAddress, https://hub.docker.com will be tried. CheckRegistry is a package level method since rkt can also use docker images, we may be interested in using rkt w/o a docker driver configured; also, we don't have to tote around a driver in any tasker that may be interested in registry information (2/2 cases thus far).