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 containersParameters: - 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 environmentParameters: - registry – default registry to push images to
- daemon –
DockerDaemon
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:tagParameters: - name – name of the image
- tag – tag of the image
- repository – repository of the image
- registry –
DockerRegistry
instance with this image - image_id – docker internal id of this image
-
fullname
¶
-
uri
¶
-
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
-
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
- image –
DockerImage
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
- image –
DockerImage
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
-
-
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
-
-
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
-
-
class
ebonite.ext.docker.
DockerIORegistry
[source]¶ Bases:
ebonite.ext.docker.base.DockerRegistry
The class represents docker.io registry.
-
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
- image –
DockerImage
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
- image –
DockerImage
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