Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
pycklets / docker_container_running.py
Size: Mime:
# -*- coding: utf-8 -*-

from pyckles import AutoPycklet


class DockerContainerRunning(AutoPycklet):
    """Installs docker (if necessary), then downloads and executes a Docker image.

     TODO: Add other important 'docker run' flags. Maybe not all of them, have a 'docker-container-running-export' (or so) frecklet for that.
     Probably also have a different frecklet for interactive docker containers that can take command-line arguments. Not sure yet.

       Args:
         image: The image to use.
         name: A name to identify this container with.
         ports: A list of ports to expose on the host.
         skip_docker_install: Whether to assume docker is already installed.
         users: A list of users who will be added to the 'docker' group.
         volumes: A list of volumes to mount.

    """

    FRECKLET_ID = "docker-container-running"

    def __init__(
        self,
        image=None,
        name=None,
        ports=None,
        skip_docker_install=None,
        users=None,
        volumes=None,
    ):

        super(DockerContainerRunning, self).__init__(
            var_names=[
                "image",
                "name",
                "ports",
                "skip_docker_install",
                "users",
                "volumes",
            ]
        )
        self._image = image
        self._name = name
        self._ports = ports
        self._skip_docker_install = skip_docker_install
        self._users = users
        self._volumes = volumes

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, image):
        self._image = image

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name

    @property
    def ports(self):
        return self._ports

    @ports.setter
    def ports(self, ports):
        self._ports = ports

    @property
    def skip_docker_install(self):
        return self._skip_docker_install

    @skip_docker_install.setter
    def skip_docker_install(self, skip_docker_install):
        self._skip_docker_install = skip_docker_install

    @property
    def users(self):
        return self._users

    @users.setter
    def users(self, users):
        self._users = users

    @property
    def volumes(self):
        return self._volumes

    @volumes.setter
    def volumes(self, volumes):
        self._volumes = volumes