def __init__( self, image=None, env=None, path=None, copy=None, run=None, lang_env=None, uid=None, gid=None, name=POLYAXON_DOCKERFILE_NAME, workdir=POLYAXON_DOCKER_WORKDIR, workdir_path=None, shell=POLYAXON_DOCKER_SHELL, ): validate_image(image) self.image = image self.env = env self.path = path self.run = run self.copy = copy self.lang_env = lang_env self.uid = uid self.gid = gid self.name = name self.workdir = workdir self.workdir_path = workdir_path self.shell = shell
def build(context, destination, nocache, max_retries, sleep_interval, reraise): """Build a dockerfile, this command required Docker to be installed.""" from polyaxon.builds.builder import build try: validate_image(destination) except ValidationError as e: handle_cli_error(e, message="Image destination is invalid.") try: build( context=context, destination=destination, nocache=nocache, max_retries=max_retries, sleep_interval=sleep_interval, ) except PolyaxonBuildException as e: handle_cli_error(e, message="Docker build failed") if reraise: raise e sys.exit(1)
def validate_dockerfile(self, data, **kwargs): validate_image(data.get("image"))
def validate_container(self, values): validate_image(values.get("image"))
def test_valid_image(self): assert validate_image(None, allow_none=True) is None assert validate_image("", allow_none=True) is None with self.assertRaises(ValidationError): validate_image("some_image_name:sdf:sdf:foo") with self.assertRaises(ValidationError): validate_image( "registry.foobar.com/my/docker/some_image_name:foo:foo") with self.assertRaises(ValidationError): validate_image("some_image_name / foo") with self.assertRaises(ValidationError): validate_image("some_image_name /foo:sdf") with self.assertRaises(ValidationError): validate_image("some_image_name /foo :sdf") with self.assertRaises(ValidationError): validate_image( "registry.foobar.com:foo:foo/my/docker/some_image_name:foo") with self.assertRaises(ValidationError): validate_image( "registry.foobar.com:foo:foo/my/docker/some_image_name") with self.assertRaises(ValidationError): validate_image( "registry.foobar.com:/my/docker/some_image_name:foo")
def __init__(self, image=None, image_pull_policy=None, command=None, args=None): validate_image(image) self.image = image self.image_pull_policy = image_pull_policy self.command = command self.args = args
def validate(self, data): validate_image(data.get("image"))