ebonite.ext.docker package

class ebonite.ext.docker.DockerRegistry[source]

Bases: ebonite.ext.docker.base.DockerRegistry, pyjackson.decorators.SubtypeRegisterMixin

Registry for docker images. This is the default implementation that represents registry of the docker daemon

type = 'pyjackson.decorators.DockerRegistry'
class ebonite.ext.docker.DockerContainer(name: str, port_mapping: Dict[int, int] = None, params: Dict[str, object] = None, container_id: str = None)[source]

Bases: ebonite.core.objects.core.Params

RuntimeInstance.Params implementation for docker containers

Parameters:
  • name – name of the container
  • port_mapping – port mapping in this container
  • params – other parameters for docker run cmd
  • container_id – internal docker id for this container
type = 'ebonite.ext.docker.base.DockerContainer'
class ebonite.ext.docker.DockerEnv(registry: ebonite.ext.docker.base.DockerRegistry = None, daemon: ebonite.ext.docker.base.DockerDaemon = None)[source]

Bases: ebonite.core.objects.core.Params

RuntimeEnvironment.Params implementation for docker environment

Parameters:
  • registry – default registry to push images to
  • daemonDockerDaemon instance
get_runner()[source]
Returns:docker runner
get_builder()[source]
Returns:docker builder instance
type = 'ebonite.ext.docker.base.DockerEnv'
class ebonite.ext.docker.DockerImage(name: str, tag: str = 'latest', repository: str = None, registry: ebonite.ext.docker.base.DockerRegistry = None, image_id: str = None)[source]

Bases: ebonite.core.objects.core.Params

Image.Params implementation for docker images full uri for image looks like registry.host/repository/name:tag

Parameters:
  • name – name of the image
  • tag – tag of the image
  • repository – repository of the image
  • registryDockerRegistry instance with this image
  • image_id – docker internal id of this image
fullname
uri
exists(client: docker.client.DockerClient)[source]

Checks if this image exists in it’s registry

delete(client: docker.client.DockerClient, force=False, **kwargs)[source]

Deletes image from registry

type = 'ebonite.ext.docker.base.DockerImage'
class ebonite.ext.docker.RemoteRegistry(host: str = None)[source]

Bases: ebonite.ext.docker.base.DockerRegistry

DockerRegistry implementation for official Docker Registry (as in https://docs.docker.com/registry/)

Parameters:host – adress of the registry
login(client)[source]

Logs in to Docker registry

Corresponding credentials should be specified as environment variables per registry: e.g., if registry host is “168.32.25.1:5000” then “168_32_25_1_5000_USERNAME” and “168_32_25_1_5000_PASSWORD” variables should be specified

Parameters:client – Docker client instance
Returns:nothing
get_host() → str[source]

Returns registry host or emty string for local

push(client, tag)[source]

Pushes image to registry

Parameters:
  • client – DockerClient to use
  • tag – name of the tag to push
uri(image: str)[source]

Cretate an uri for image in this registry

Parameters:image – image name
image_exists(client, image: ebonite.ext.docker.base.DockerImage)[source]

Check if image exists in this registry

Parameters:
  • client – DockerClient to use
  • imageDockerImage to check
delete_image(client, image: ebonite.ext.docker.base.DockerImage, force=False, **kwargs)[source]

Deleta image from this registry

Parameters:
  • client – DockerClient to use
  • imageDockerImage to delete
  • force – force delete
type = 'ebonite.ext.docker.base.RemoteRegistry'
class ebonite.ext.docker.DockerRunner[source]

Bases: ebonite.build.runner.base.RunnerBase

RunnerBase implementation for docker containers

instance_exists(instance: ebonite.ext.docker.base.DockerContainer, env: ebonite.ext.docker.base.DockerEnv, **kwargs) → bool[source]

Checks if instance exists in environment

Parameters:
  • instance – instance params to check
  • env – environment to check in
Returns:

boolean flag

remove_instance(instance: ebonite.ext.docker.base.DockerContainer, env: ebonite.ext.docker.base.DockerEnv, **kwargs)[source]

Removes instance

Parameters:
  • instance – instance params to remove
  • env – environment to remove from
instance_type() → Type[ebonite.ext.docker.base.DockerContainer][source]
Returns:subtype of RuntimeInstance.Params supported by this runner
create_instance(name: str, port_mapping: Dict[int, int] = None, **kwargs) → ebonite.ext.docker.base.DockerContainer[source]

Creates new runtime instance on given name and args

Parameters:name – name of instance to use
Returns:created RuntimeInstance.Params subclass instance
run(instance: ebonite.ext.docker.base.DockerContainer, image: ebonite.ext.docker.base.DockerImage, env: ebonite.ext.docker.base.DockerEnv, rm=True, detach=True, **kwargs)[source]

Runs given image on given environment with params given by instance

Parameters:
  • instance – instance params to use for running
  • image – image to base instance on
  • env – environment to run on
logs(instance: ebonite.ext.docker.base.DockerContainer, env: ebonite.ext.docker.base.DockerEnv, **kwargs) → Generator[str, None, None][source]

Exposes logs produced by given instance while running on given environment

Parameters:
  • instance – instance to expose logs for
  • env – environment to expose logs from
Returns:

generator of log strings or string with logs

is_running(instance: ebonite.ext.docker.base.DockerContainer, env: ebonite.ext.docker.base.DockerEnv, **kwargs) → bool[source]

Checks that given instance is running on given environment

Parameters:
  • instance – instance to check running of
  • env – environment to check running on
Returns:

“is running” flag

stop(instance: ebonite.ext.docker.base.DockerContainer, env: ebonite.ext.docker.base.DockerEnv, **kwargs)[source]

Stops running of given instance on given environment

Parameters:
  • instance – instance to stop running of
  • env – environment to stop running on
class ebonite.ext.docker.RunnerBase[source]

Bases: object

instance_type() → Type[ebonite.core.objects.core.RuntimeInstance.Params][source]
Returns:subtype of RuntimeInstance.Params supported by this runner
create_instance(name: str, **kwargs) → ebonite.core.objects.core.RuntimeInstance.Params[source]

Creates new runtime instance on given name and args

Parameters:name – name of instance to use
Returns:created RuntimeInstance.Params subclass instance
run(instance: ebonite.core.objects.core.RuntimeInstance.Params, image: ebonite.core.objects.core.Image.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs)[source]

Runs given image on given environment with params given by instance

Parameters:
  • instance – instance params to use for running
  • image – image to base instance on
  • env – environment to run on
is_running(instance: ebonite.core.objects.core.RuntimeInstance.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs) → bool[source]

Checks that given instance is running on given environment

Parameters:
  • instance – instance to check running of
  • env – environment to check running on
Returns:

“is running” flag

stop(instance: ebonite.core.objects.core.RuntimeInstance.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs)[source]

Stops running of given instance on given environment

Parameters:
  • instance – instance to stop running of
  • env – environment to stop running on
logs(instance: ebonite.core.objects.core.RuntimeInstance.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs) → Generator[str, None, None][source]

Exposes logs produced by given instance while running on given environment

Parameters:
  • instance – instance to expose logs for
  • env – environment to expose logs from
Returns:

generator of log strings or string with logs

instance_exists(instance: ebonite.core.objects.core.RuntimeInstance.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs) → bool[source]

Checks if instance exists in environment

Parameters:
  • instance – instance params to check
  • env – environment to check in
Returns:

boolean flag

remove_instance(instance: ebonite.core.objects.core.RuntimeInstance.Params, env: ebonite.core.objects.core.RuntimeEnvironment.Params, **kwargs)[source]

Removes instance

Parameters:
  • instance – instance params to remove
  • env – environment to remove from
class ebonite.ext.docker.DockerBuilder[source]

Bases: ebonite.build.builder.base.BuilderBase

Builder implementation to build docker images

create_image(name: str, environment: ebonite.ext.docker.base.DockerEnv, tag: str = 'latest', repository: str = None, **kwargs) → ebonite.ext.docker.base.DockerImage[source]

Abstract method to create image

build_image(buildable: ebonite.core.objects.core.Buildable, image: ebonite.ext.docker.base.DockerImage, environment: ebonite.ext.docker.base.DockerEnv, force_overwrite=False, **kwargs)[source]

Abstract method to build image

delete_image(image: ebonite.ext.docker.base.DockerImage, environment: ebonite.ext.docker.base.DockerEnv, force=False, **kwargs)[source]

Abstract method to delete image

image_exists(image: ebonite.ext.docker.base.DockerImage, environment: ebonite.ext.docker.base.DockerEnv, **kwargs) → bool[source]

Abstract method to check if image exists

class ebonite.ext.docker.DockerIORegistry[source]

Bases: ebonite.ext.docker.base.DockerRegistry

The class represents docker.io registry.

get_host() → str[source]

Returns registry host or emty string for local

push(client, tag)[source]

Pushes image to registry

Parameters:
  • client – DockerClient to use
  • tag – name of the tag to push
image_exists(client, image: ebonite.ext.docker.base.DockerImage)[source]

Check if image exists in this registry

Parameters:
  • client – DockerClient to use
  • imageDockerImage to check
delete_image(client, image: ebonite.ext.docker.base.DockerImage, force=False, **kwargs)[source]

Deleta image from this registry

Parameters:
  • client – DockerClient to use
  • imageDockerImage to delete
  • force – force delete
type = 'ebonite.ext.docker.base.DockerIORegistry'
ebonite.ext.docker.build_docker_image(name: str, obj, server: ebonite.runtime.server.base.Server = None, env: ebonite.ext.docker.base.DockerEnv = None, tag: str = 'latest', repository: str = None, force_overwrite: bool = False, **kwargs) → ebonite.core.objects.core.Image[source]

Build docker image from object

Parameters:
  • name – name of the resultimg image
  • obj – obj to build image. must be convertible to Buildable: Model, Pipeline, list of one of those, etc.
  • server – server to build image with
  • env – DockerEnv to build in. Default - local docker daemon
  • tag – image tag
  • repository – image repository
  • force_overwrite – wheter to force overwrite existing image
Parma kwargs:

additional arguments for DockerBuilder.build_image

ebonite.ext.docker.run_docker_instance(image: ebonite.core.objects.core.Image, name: str = None, env: ebonite.ext.docker.base.DockerEnv = None, port_mapping: Dict[int, int] = None, instance_kwargs: Dict[str, Any] = None, rm: bool = False, detach: bool = True, **kwargs) → ebonite.core.objects.core.RuntimeInstance[source]

Create and run docker container

Parameters:
  • image – image to build from
  • name – name of the container. defaults to image name
  • env – DockerEnv to run in. Default - local docker daemon
  • port_mapping – port mapping for container
  • instance_kwargs – additional DockerInstance args
  • rm – wheter to remove container on exit
  • detach – wheter to detach from container after run
  • kwargs – additional args for DockerRunner.run