|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
from src.main.python.ddadevops.domain import Image
|
|
|
|
|
from src.main.python.ddadevops.domain import Image, Devops
|
|
|
|
|
from src.main.python.ddadevops.infrastructure import FileApi, ResourceApi, ImageApi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -6,49 +6,55 @@ class ImageBuildService:
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.file_api = FileApi()
|
|
|
|
|
self.resource_api = ResourceApi()
|
|
|
|
|
self.docker_api = ImageApi()
|
|
|
|
|
self.image_api = ImageApi()
|
|
|
|
|
|
|
|
|
|
def __copy_build_resource_file_from_package__(self, resource_name, docker: Image):
|
|
|
|
|
def __copy_build_resource_file_from_package__(self, resource_name, image: Image):
|
|
|
|
|
data = self.resource_api.read_resource(f"src/main/resources/docker/{resource_name}")
|
|
|
|
|
self.file_api.write_data_to_file(
|
|
|
|
|
f"{docker.devops.build_path()}/{resource_name}", data
|
|
|
|
|
f"{image.devops.build_path()}/{resource_name}", data
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def __copy_build_resources_from_package__(self, docker: Image):
|
|
|
|
|
def __copy_build_resources_from_package__(self, image: Image):
|
|
|
|
|
self.__copy_build_resource_file_from_package__(
|
|
|
|
|
"image/resources/install_functions.sh", docker
|
|
|
|
|
"image/resources/install_functions.sh", image
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def __copy_build_resources_from_dir__(self, docker: Image):
|
|
|
|
|
def __copy_build_resources_from_dir__(self, image: Image):
|
|
|
|
|
self.file_api.cp_force(
|
|
|
|
|
docker.docker_build_commons_path(), docker.devops.build_path()
|
|
|
|
|
image.docker_build_commons_path(), image.devops.build_path()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def initialize_build_dir(self, docker: Image):
|
|
|
|
|
build_path = docker.devops.build_path()
|
|
|
|
|
def initialize_build_dir(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
build_path = image.devops.build_path()
|
|
|
|
|
self.file_api.clean_dir(f"{build_path}/image/resources")
|
|
|
|
|
if docker.use_package_common_files:
|
|
|
|
|
self.__copy_build_resources_from_package__(docker)
|
|
|
|
|
if image.use_package_common_files:
|
|
|
|
|
self.__copy_build_resources_from_package__(image)
|
|
|
|
|
else:
|
|
|
|
|
self.__copy_build_resources_from_dir__(docker)
|
|
|
|
|
self.__copy_build_resources_from_dir__(image)
|
|
|
|
|
self.file_api.cp_recursive("image", build_path)
|
|
|
|
|
self.file_api.cp_recursive("test", build_path)
|
|
|
|
|
|
|
|
|
|
def image(self, docker: Image):
|
|
|
|
|
self.docker_api.image(docker.devops.name, docker.devops.build_path())
|
|
|
|
|
def image(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
self.image_api.image(image.devops.name, image.devops.build_path())
|
|
|
|
|
|
|
|
|
|
def drun(self, docker: Image):
|
|
|
|
|
self.docker_api.drun(docker.devops.name)
|
|
|
|
|
def drun(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
self.image_api.drun(image.devops.name)
|
|
|
|
|
|
|
|
|
|
def dockerhub_login(self, docker: Image):
|
|
|
|
|
self.docker_api.dockerhub_login(
|
|
|
|
|
docker.dockerhub_user, docker.dockerhub_password
|
|
|
|
|
def dockerhub_login(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
self.image_api.dockerhub_login(
|
|
|
|
|
image.dockerhub_user, image.dockerhub_password
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def dockerhub_publish(self, docker: Image):
|
|
|
|
|
self.docker_api.dockerhub_publish(
|
|
|
|
|
docker.devops.name, docker.dockerhub_user, docker.docker_publish_tag
|
|
|
|
|
def dockerhub_publish(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
self.image_api.dockerhub_publish(
|
|
|
|
|
image.devops.name, image.dockerhub_user, image.docker_publish_tag
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def test(self, docker: Image):
|
|
|
|
|
self.docker_api.test(docker.devops.name, docker.devops.build_path())
|
|
|
|
|
def test(self, devops: Devops):
|
|
|
|
|
image = devops.specialized_build
|
|
|
|
|
self.image_api.test(image.devops.name, image.devops.build_path())
|
|
|
|
|