From d7e2557dab4e1c923b83c29929d886c8b60c68e1 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Mon, 17 Jun 2019 16:42:57 +0200 Subject: [PATCH] Add build information to docker images and final container and fix image deployment (#42) Exaslct now adds build information to the docker images and the final container to easier trace down which image introduces a problem. For that, we include the following information into the images and the container: - Configuration which was used to create the images and the container - Dockerfiles of the images - The package lists that each image installs Additional minor changes: - Set lower bounds for the version of the python packages in the Pipfile for exaslct - Fix image deployment: now all images get deployed instead only the top-level images --- Pipfile | 25 +++++------ exaslct_src/cli/commands/build.py | 4 +- exaslct_src/cli/commands/export.py | 7 +++- exaslct_src/cli/commands/push.py | 7 +++- exaslct_src/cli/commands/run_db_tests.py | 7 +++- exaslct_src/cli/commands/save.py | 7 +++- .../cli/commands/spawn_test_environment.py | 1 + exaslct_src/cli/commands/upload.py | 7 +++- exaslct_src/cli/common.py | 8 +++- exaslct_src/cli/options.py | 2 + exaslct_src/docs/image-dependencies.odg | Bin 14221 -> 14336 bytes exaslct_src/docs/image-dependencies.png | Bin 121320 -> 124995 bytes exaslct_src/lib/build_config.py | 3 +- exaslct_src/lib/data/image_info.py | 19 ++++++--- .../lib/docker/build_context_creator.py | 17 +++++++- exaslct_src/lib/docker/docker_analyze_task.py | 39 ++++++++++++------ .../lib/docker/docker_flavor_image_task.py | 3 +- .../lib/docker/docker_image_builder.py | 11 ++--- exaslct_src/lib/docker_config.py | 8 ++++ .../lib/test_runner/spawn_test_database.py | 2 +- .../flavor_base/build_run/Dockerfile | 3 +- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/release/Dockerfile | 3 +- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 10 ++--- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 6 +-- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 10 ++--- .../flavor_base/flavor_base_deps_2/Dockerfile | 6 +-- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 6 +-- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 8 ++-- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 10 ++--- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 8 ++-- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 10 ++--- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 8 ++-- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 10 ++--- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 18 ++++---- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 6 +-- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- .../flavor_base/base_test_deps/Dockerfile | 6 +-- .../flavor_base/build_deps/Dockerfile | 6 +-- .../flavor_base/build_run/Dockerfile | 4 +- .../flavor_base/flavor_base_deps/Dockerfile | 18 ++++---- .../flavor_test_build_run/Dockerfile | 1 + .../flavor_base/language_deps/Dockerfile | 6 +-- .../flavor_base/release/Dockerfile | 6 +-- .../flavor_base/udfclient_deps/Dockerfile | 6 +-- travis/build_build_run.sh | 2 +- travis/build_flavor_base_deps.sh | 2 +- travis/build_language_deps_and_build_deps.sh | 2 +- travis/build_name.sh | 3 ++ travis/build_release.sh | 2 +- travis/deploy_images_for_commit.sh | 2 +- travis/deploy_images_to_public.sh | 2 +- travis/export.sh | 2 +- travis/run_db_test.sh | 2 +- 89 files changed, 320 insertions(+), 226 deletions(-) create mode 100755 travis/build_name.sh diff --git a/Pipfile b/Pipfile index a0da0c32e..04a592cd8 100644 --- a/Pipfile +++ b/Pipfile @@ -2,15 +2,16 @@ python_version = "3.6" [packages] -luigi = "*" -jinja2 = "*" -humanfriendly = "*" -jsonpickle = "*" -simplejson = "*" -docker = "==3.7.2" -netaddr = "*" -click = "*" -requests = "*" -networkx = "*" -pydot = "*" -"stopwatch.py" = "*" \ No newline at end of file +luigi = ">=2.8.4" +jinja2 = ">=2.10.1" +humanfriendly = ">=4.18" +jsonpickle = ">=1.1" +simplejson = ">=3.16.0" +docker = ">=4.0.0" +netaddr = ">=0.7.19" +click = ">=7.0" +requests = ">=2.21.0" +networkx = ">=2.3" +pydot = ">=1.4.0" +"stopwatch.py" = ">=1.0.0" +gitpython= ">=2.1.0" \ No newline at end of file diff --git a/exaslct_src/cli/commands/build.py b/exaslct_src/cli/commands/build.py index 808e1b0fb..4cb4f5072 100644 --- a/exaslct_src/cli/commands/build.py +++ b/exaslct_src/cli/commands/build.py @@ -37,6 +37,7 @@ def build(flavor_path: Tuple[str, ...], temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name:str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -59,7 +60,8 @@ def build(flavor_path: Tuple[str, ...], log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/commands/export.py b/exaslct_src/cli/commands/export.py index 121e5020b..5a1b85d3f 100644 --- a/exaslct_src/cli/commands/export.py +++ b/exaslct_src/cli/commands/export.py @@ -3,7 +3,8 @@ from click._unicodefun import click from exaslct_src.cli.cli import cli -from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, import_build_steps +from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, \ + import_build_steps from exaslct_src.cli.options \ import build_options, flavor_options, system_options, release_options, \ docker_repository_options @@ -29,6 +30,7 @@ def export(flavor_path: Tuple[str, ...], temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name: str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -51,7 +53,8 @@ def export(flavor_path: Tuple[str, ...], log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/commands/push.py b/exaslct_src/cli/commands/push.py index d381152d7..ec4b56fad 100644 --- a/exaslct_src/cli/commands/push.py +++ b/exaslct_src/cli/commands/push.py @@ -4,7 +4,8 @@ from exaslct_src.lib.docker_push import DockerPush from exaslct_src.cli.cli import cli -from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, import_build_steps +from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, \ + import_build_steps from exaslct_src.cli.options \ import build_options, flavor_options, system_options, docker_repository_options, goal_options @@ -30,6 +31,7 @@ def push(flavor_path: Tuple[str, ...], temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name: str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -51,7 +53,8 @@ def push(flavor_path: Tuple[str, ...], log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/commands/run_db_tests.py b/exaslct_src/cli/commands/run_db_tests.py index 598787343..fa82e8124 100644 --- a/exaslct_src/cli/commands/run_db_tests.py +++ b/exaslct_src/cli/commands/run_db_tests.py @@ -6,7 +6,8 @@ from exaslct_src import TestContainer from exaslct_src.cli.cli import cli -from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, import_build_steps +from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, \ + import_build_steps from exaslct_src.cli.options \ import build_options, flavor_options, system_options, release_options, \ docker_repository_options @@ -76,6 +77,7 @@ def run_db_test(flavor_path: Tuple[str, ...], temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name: str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -100,7 +102,8 @@ def run_db_test(flavor_path: Tuple[str, ...], log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/commands/save.py b/exaslct_src/cli/commands/save.py index 32799b5b4..63bc7e420 100644 --- a/exaslct_src/cli/commands/save.py +++ b/exaslct_src/cli/commands/save.py @@ -3,7 +3,8 @@ from click._unicodefun import click from exaslct_src.cli.cli import cli -from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, import_build_steps +from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, \ + import_build_steps from exaslct_src.cli.options \ import build_options, flavor_options, system_options, goal_options, \ docker_repository_options @@ -35,6 +36,7 @@ def save(save_directory: str, temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name: str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -56,7 +58,8 @@ def save(save_directory: str, log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/commands/spawn_test_environment.py b/exaslct_src/cli/commands/spawn_test_environment.py index 10477787b..86089d86a 100644 --- a/exaslct_src/cli/commands/spawn_test_environment.py +++ b/exaslct_src/cli/commands/spawn_test_environment.py @@ -32,6 +32,7 @@ def spawn_test_environment( False, output_directory, temporary_base_directory, + None, None) tasks = lambda: [SpawnTestDockerEnvironment(environment_name=environment_name, database_port_forward=str(database_port_forward), diff --git a/exaslct_src/cli/commands/upload.py b/exaslct_src/cli/commands/upload.py index 931494b62..913328f74 100644 --- a/exaslct_src/cli/commands/upload.py +++ b/exaslct_src/cli/commands/upload.py @@ -6,7 +6,8 @@ from exaslct_src.lib.upload_container import UploadContainer from exaslct_src.cli.cli import cli -from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, import_build_steps +from exaslct_src.cli.common import set_build_config, set_docker_repository_config, run_tasks, add_options, \ + import_build_steps from exaslct_src.cli.options \ import build_options, flavor_options, system_options, release_options, \ docker_repository_options @@ -46,6 +47,7 @@ def upload(flavor_path: Tuple[str, ...], temporary_base_directory: str, log_build_context_content: bool, cache_directory: str, + build_name: str, source_docker_repository_name: str, source_docker_tag_prefix: str, source_docker_username: str, @@ -68,7 +70,8 @@ def upload(flavor_path: Tuple[str, ...], log_build_context_content, output_directory, temporary_base_directory, - cache_directory) + cache_directory, + build_name) set_docker_repository_config(source_docker_password, source_docker_repository_name, source_docker_username, source_docker_tag_prefix, "source") set_docker_repository_config(target_docker_password, target_docker_repository_name, target_docker_username, diff --git a/exaslct_src/cli/common.py b/exaslct_src/cli/common.py index 64c05c680..8fb25faa9 100644 --- a/exaslct_src/cli/common.py +++ b/exaslct_src/cli/common.py @@ -20,7 +20,8 @@ def set_build_config(force_rebuild: bool, log_build_context_content: bool, output_directory: str, temporary_base_directory: str, - cache_directory: str): + cache_directory: str, + build_name: str, ): luigi.configuration.get_config().set('build_config', 'force_rebuild', str(force_rebuild)) luigi.configuration.get_config().set('build_config', 'force_rebuild_from', json.dumps(force_rebuild_from)) luigi.configuration.get_config().set('build_config', 'force_pull', str(force_pull)) @@ -29,6 +30,8 @@ def set_build_config(force_rebuild: bool, luigi.configuration.get_config().set('build_config', 'temporary_base_directory', temporary_base_directory) if cache_directory is not None: luigi.configuration.get_config().set('build_config', 'cache_directory', cache_directory) + if build_name is not None: + luigi.configuration.get_config().set('build_config', 'build_name', build_name) luigi.configuration.get_config().set('build_config', 'log_build_context_content', str(log_build_context_content)) @@ -37,7 +40,8 @@ def set_output_directory(output_directory): luigi.configuration.get_config().set('build_config', 'output_directory', output_directory) -def set_docker_repository_config(docker_password: str, docker_repository_name: str, docker_username: str, tag_prefix: str, +def set_docker_repository_config(docker_password: str, docker_repository_name: str, docker_username: str, + tag_prefix: str, kind: str): config_class = f'{kind}_docker_repository_config' luigi.configuration.get_config().set(config_class, 'tag_prefix', tag_prefix) diff --git a/exaslct_src/cli/options.py b/exaslct_src/cli/options.py index 7f3562e34..b0f15e5f5 100644 --- a/exaslct_src/cli/options.py +++ b/exaslct_src/cli/options.py @@ -101,6 +101,8 @@ help="For Debugging: Logs the files and directories in the build context of a stage"), click.option('--cache-directory', default=None, type=click.Path(file_okay=False, dir_okay=True, exists=False), help="Directory from where saved docker images can be loaded"), + click.option('--build-name', default=None, type=str, + help="Name of the build. For example: Repository + CI Build Number"), ] system_options = [ diff --git a/exaslct_src/docs/image-dependencies.odg b/exaslct_src/docs/image-dependencies.odg index fa761b56537778e97e59da786e127e8d970779e2..8faafc7ceedebe400b60b60adb6ae8ed0b51ea9c 100644 GIT binary patch delta 9345 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 b^jE{lXA}S+{Vx?0L4+lg4bm<2XZHU9as%$K delta 9225 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
oVCNwN6b^gouZBgsFls;YTHw|gm<@~ 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≦NaslVnG`uYv62aXn{$5(h;Kx6QWlL3;hTScf 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

{yS2;n#h;)9?7cmJ-pEpE4)ktg|1 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 PG*wkmQ=#gG#fN_b^z=*R diff --git a/exaslct_src/lib/build_config.py b/exaslct_src/lib/build_config.py index c3737da87..9b2ad18f5 100644 --- a/exaslct_src/lib/build_config.py +++ b/exaslct_src/lib/build_config.py @@ -10,4 +10,5 @@ class build_config(luigi.Config): #keep_build_context = luigi.BoolParameter(False) temporary_base_directory = luigi.OptionalParameter(None) output_directory = luigi.Parameter(".build_output") - cache_directory = luigi.OptionalParameter("") \ No newline at end of file + cache_directory = luigi.OptionalParameter("") + build_name = luigi.OptionalParameter("") \ No newline at end of file diff --git a/exaslct_src/lib/data/image_info.py b/exaslct_src/lib/data/image_info.py index e45e900cf..fad5cafc2 100644 --- a/exaslct_src/lib/data/image_info.py +++ b/exaslct_src/lib/data/image_info.py @@ -1,8 +1,10 @@ +from datetime import datetime from enum import Enum from typing import Dict, Any from exaslct_src.lib.data.info import Info + class ImageState(Enum): NOT_EXISTING = 0, # After analyze phase or if build phase did touch the image @@ -18,6 +20,7 @@ class ImageState(Enum): WAS_LOADED = 9 WAS_TAGED = 10 + class ImageDescription: def __init__(self, dockerfile: str, @@ -31,21 +34,27 @@ def __init__(self, class ImageInfo(Info): - DOCKER_TAG_LENGTH_LIMIT=128 + DOCKER_TAG_LENGTH_LIMIT = 128 MAX_TAG_SURPLUS = 30 def __init__(self, source_repository_name: str, target_repository_name: str, - source_tag: str, target_tag: str, hash: str, + source_tag: str, target_tag: str, + hash: str, commit: str, image_description: ImageDescription, + build_name:str= "", + build_date_time: datetime=datetime.utcnow(), image_state: ImageState = ImageState.NOT_EXISTING, depends_on_images: Dict[str, "ImageInfo"] = None): + self.build_name = build_name + self.date_time = str(build_date_time) + self.commit = commit self.target_repository_name = target_repository_name self.source_repository_name = source_repository_name self.image_description = image_description if isinstance(image_state, ImageState): self.image_state = image_state.name - elif isinstance(image_state,str): + elif isinstance(image_state, str): self.image_state = ImageState[image_state].name elif image_state is None: self.image_state = None @@ -62,7 +71,7 @@ def check_complete_tag_length(self, tag): complete_tag_length_limit = self.DOCKER_TAG_LENGTH_LIMIT + self.MAX_TAG_SURPLUS complete_tag = self._create_complete_tag(tag) if len(complete_tag) > complete_tag_length_limit: - raise Exception(f"Complete Tag to long by {len(complete_tag)-complete_tag_length_limit}: {complete_tag}") + raise Exception(f"Complete Tag to long by {len(complete_tag) - complete_tag_length_limit}: {complete_tag}") def get_target_complete_name(self): return f"{self.target_repository_name}:{self.get_target_complete_tag()}" @@ -76,7 +85,7 @@ def get_source_complete_tag(self): def get_target_complete_tag(self): return self._create_truncated_complete_tag(self.target_tag) - def _create_truncated_complete_tag(self, tag:str)->str: + def _create_truncated_complete_tag(self, tag: str) -> str: # we must truncate the tag to 128 characters, because this is the limit of docker tags # refer here https://docs.docker.com/engine/reference/commandline/tag/ complete_tag = self._create_complete_tag(tag) diff --git a/exaslct_src/lib/docker/build_context_creator.py b/exaslct_src/lib/docker/build_context_creator.py index d5234bb3f..3ea8aea18 100644 --- a/exaslct_src/lib/docker/build_context_creator.py +++ b/exaslct_src/lib/docker/build_context_creator.py @@ -1,12 +1,13 @@ import os import pathlib import shutil +import textwrap from pathlib import Path from jinja2 import Template from exaslct_src.lib.build_config import build_config -from exaslct_src.lib.data.image_info import ImageInfo +from exaslct_src.lib.data.image_info import ImageInfo, ImageState class BuildContextCreator: @@ -23,8 +24,14 @@ def __init__(self, def prepare_build_context_to_temp_dir(self): self._copy_build_files_and_directories() self._prepare_dockerfile() + self._prepare_image_info() self._log_build_context() + def _prepare_image_info(self): + self._image_info.image_state = ImageState.WAS_BUILD.name + with open(self._temp_directory + "/image_info", "wt") as file: + file.write(self._image_info.to_json()) + def _prepare_dockerfile(self): with open(self._image_description.dockerfile, "rt") as file: dockerfile_content = file.read() @@ -34,6 +41,12 @@ def _prepare_dockerfile(self): for key, image_info in self._image_info_of_dependencies.items()} final_dockerfile = template.render(**image_names_of_dependencies) + final_dockerfile += textwrap.dedent(f""" + RUN mkdir -p /build_info/image_info + COPY image_info /build_info/image_info/{self._image_info.target_tag} + RUN mkdir -p /build_info/dockerfiles + COPY Dockerfile /build_info/dockerfiles/{self._image_info.target_tag} + """) with open(self._temp_directory + "/Dockerfile", "wt") as file: file.write(final_dockerfile) @@ -59,4 +72,4 @@ def _log_build_context(self): shutil.copy(self._temp_directory + "/Dockerfile", str(dockerfile_log_file)) def _get_files_in_build_context(self, temp_directory): - return [os.path.join(r, file) for r, d, f in os.walk(temp_directory) for file in f] \ No newline at end of file + return [os.path.join(r, file) for r, d, f in os.walk(temp_directory) for file in f] diff --git a/exaslct_src/lib/docker/docker_analyze_task.py b/exaslct_src/lib/docker/docker_analyze_task.py index 314582559..325afefbb 100644 --- a/exaslct_src/lib/docker/docker_analyze_task.py +++ b/exaslct_src/lib/docker/docker_analyze_task.py @@ -1,8 +1,9 @@ import logging from pathlib import Path -from typing import Dict, Any +from typing import Dict import docker +import git import luigi from exaslct_src.lib.build_config import build_config @@ -11,9 +12,9 @@ from exaslct_src.lib.data.image_info import ImageInfo, ImageState, ImageDescription from exaslct_src.lib.docker.docker_image_target import DockerImageTarget from exaslct_src.lib.docker.docker_registry_image_checker import DockerRegistryImageChecker -from exaslct_src.lib.docker_config import docker_client_config, source_docker_repository_config -from exaslct_src.lib.utils.build_context_hasher import BuildContextHasher +from exaslct_src.lib.docker_config import docker_client_config, docker_build_arguments from exaslct_src.lib.stoppable_task import StoppableTask +from exaslct_src.lib.utils.build_context_hasher import BuildContextHasher class DockerAnalyzeImageTask(StoppableTask): @@ -25,11 +26,15 @@ def __init__(self, *args, **kwargs): self._target_repository_name = self.get_target_repository_name() self._source_image_tag = self.get_source_image_tag() self._target_image_tag = self.get_target_image_tag() + merged_transparent_build_arguments = {**self.get_transparent_build_arguments(), + **docker_build_arguments().transparent} + merged_image_changing_build_arguments = {**self.get_image_changing_build_arguments(), + **docker_build_arguments().image_changing} self.image_description = ImageDescription( dockerfile=self.get_dockerfile(), mapping_of_build_files_and_directories=self.get_mapping_of_build_files_and_directories(), - image_changing_build_arguments=self.get_image_changing_build_arguments(), - transparent_build_arguments=self.get_transparent_build_arguments() + image_changing_build_arguments=merged_image_changing_build_arguments, + transparent_build_arguments=merged_transparent_build_arguments ) self._dockerfile = self.get_dockerfile() self._prepare_outputs() @@ -63,7 +68,6 @@ def get_target_repository_name(self) -> str: """ pass - def get_source_image_tag(self) -> str: """ Called by the constructor to get the image tag for pulls. Sub classes need to implement this method. @@ -78,7 +82,6 @@ def get_target_image_tag(self) -> str: """ pass - def get_mapping_of_build_files_and_directories(self) -> Dict[str, str]: """ Called by the constructor to get the build files and directories mapping. @@ -97,7 +100,7 @@ def get_dockerfile(self) -> str: """ pass - def get_image_changing_build_arguments(self) -> Dict[str, Any]: + def get_image_changing_build_arguments(self) -> Dict[str, str]: """ Called by the constructor to get the path image changing docker build arguments. Different values for these arguments might change the image, such that they @@ -108,7 +111,7 @@ def get_image_changing_build_arguments(self) -> Dict[str, Any]: """ return dict() - def get_transparent_build_arguments(self) -> Dict[str, Any]: + def get_transparent_build_arguments(self) -> Dict[str, str]: """ Called by the constructor to get the path transparent docker build arguments. Transparent arguments do not change the contain of the images. @@ -123,7 +126,7 @@ def is_rebuild_requested(self) -> bool: pass def output(self): - return {IMAGE_INFO:self._image_info_target} + return {IMAGE_INFO: self._image_info_target} def run_task(self): image_info_of_dependencies = DependencyImageInfoCollector().get_from_dict_of_inputs(self.input()) @@ -134,6 +137,8 @@ def run_task(self): source_tag=self._source_image_tag, target_tag=self._target_image_tag, hash=image_hash, + commit=self.get_commit_id(), + build_name=build_config().build_name, depends_on_images=image_info_of_dependencies, image_state=None, image_description=self.image_description @@ -143,10 +148,20 @@ def run_task(self): image_state = self.get_image_state(source_image_target, target_image_target, image_info_of_dependencies) - image_info.image_state=image_state.name #TODO setter for image_state + image_info.image_state = image_state.name # TODO setter for image_state with self._image_info_target.open("w") as f: f.write(image_info.to_json()) + def get_commit_id(self): + try: + repo = git.Repo(search_parent_directories=True) + sha = repo.head.object.hexsha + return sha + except Exception as e: + self.logger.info("Task %s_ Not a Git Repository, can't determine the commit id for the image_info", + self.__repr__()) + return "" + def get_image_state(self, source_image_target: DockerImageTarget, target_image_target: DockerImageTarget, @@ -198,7 +213,7 @@ def can_image_be_loaded(self, image_target: DockerImageTarget): def get_path_to_cached_image(self, image_target): image_path = \ Path(build_config().cache_directory) \ - .joinpath(Path(image_target.get_complete_name()+".tar")) + .joinpath(Path(image_target.get_complete_name() + ".tar")) return image_path def is_image_in_registry(self, image_target: DockerImageTarget): diff --git a/exaslct_src/lib/docker/docker_flavor_image_task.py b/exaslct_src/lib/docker/docker_flavor_image_task.py index e48e7d655..504dc6af4 100644 --- a/exaslct_src/lib/docker/docker_flavor_image_task.py +++ b/exaslct_src/lib/docker/docker_flavor_image_task.py @@ -5,7 +5,7 @@ from exaslct_src.lib.build_config import build_config from exaslct_src.lib.docker.docker_analyze_task import DockerAnalyzeImageTask -from exaslct_src.lib.docker_config import docker_client_config, source_docker_repository_config, target_docker_repository_config +from exaslct_src.lib.docker_config import source_docker_repository_config, target_docker_repository_config from exaslct_src.lib.flavor import flavor @@ -20,7 +20,6 @@ def __init__(self, *args, **kwargs): self.additional_build_directories_mapping = self.get_additional_build_directories_mapping() super().__init__(*args, **kwargs) - def is_rebuild_requested(self) -> bool: config = build_config() return ( diff --git a/exaslct_src/lib/docker/docker_image_builder.py b/exaslct_src/lib/docker/docker_image_builder.py index d643b8052..be6796698 100644 --- a/exaslct_src/lib/docker/docker_image_builder.py +++ b/exaslct_src/lib/docker/docker_image_builder.py @@ -11,7 +11,7 @@ from exaslct_src.lib.data.image_info import ImageInfo from exaslct_src.lib.docker.build_context_creator import BuildContextCreator from exaslct_src.lib.docker.build_log_handler import BuildLogHandler -from exaslct_src.lib.docker_config import docker_client_config, target_docker_repository_config +from exaslct_src.lib.docker_config import docker_client_config, target_docker_repository_config, docker_build_arguments from exaslct_src.lib.log_config import log_config from exaslct_src.lib.still_running_logger import StillRunningLogger @@ -20,8 +20,6 @@ class DockerImageBuilder: logger = logging.getLogger('luigi-interface') def __init__(self, task_id: str): - - self._log_config = log_config() self._low_level_client = docker_client_config().get_low_level_client() self._task_id = task_id @@ -45,8 +43,9 @@ def build(self, image_info: ImageInfo): self._low_level_client.build(path=temp_directory, tag=image_info.get_target_complete_name(), rm=True, - **image_description.transparent_build_arguments, - **image_description.image_changing_build_arguments) + buildargs=dict(**image_description.transparent_build_arguments, + **image_description.image_changing_build_arguments, + **docker_build_arguments().secret)) self._handle_output(output_generator, image_info, log_file_path) finally: shutil.rmtree(temp_directory) @@ -73,5 +72,3 @@ def prepare_log_file_path(self, image_info: ImageInfo): shutil.rmtree(log_file_path) log_file_path.mkdir(parents=True) return log_file_path - - diff --git a/exaslct_src/lib/docker_config.py b/exaslct_src/lib/docker_config.py index ec827970b..a3f94bafe 100644 --- a/exaslct_src/lib/docker_config.py +++ b/exaslct_src/lib/docker_config.py @@ -25,3 +25,11 @@ class target_docker_repository_config(luigi.Config): tag_prefix = luigi.Parameter("") username = luigi.OptionalParameter(None, significant=False, visibility=ParameterVisibility.PRIVATE) password = luigi.OptionalParameter(None, significant=False, visibility=ParameterVisibility.PRIVATE) + + +class docker_build_arguments(luigi.Config): + transparent = luigi.DictParameter(dict()) + image_changing = luigi.DictParameter(dict()) + secret = luigi.DictParameter(dict(), + description="Will not be saved somewhere, but are also assumed to be transparent", + visibility=ParameterVisibility.PRIVATE) diff --git a/exaslct_src/lib/test_runner/spawn_test_database.py b/exaslct_src/lib/test_runner/spawn_test_database.py index fa9bcf129..e3f22f713 100644 --- a/exaslct_src/lib/test_runner/spawn_test_database.py +++ b/exaslct_src/lib/test_runner/spawn_test_database.py @@ -175,7 +175,7 @@ def pull_docker_db_images_if_necassary(self): source_repository_name=image_name, source_tag=image_tag, target_tag=image_tag, - hash="", + hash="", commit = "", image_description=None) try: diff --git a/exaslct_src/test/resources/test-flavor/flavor_base/build_run/Dockerfile b/exaslct_src/test/resources/test-flavor/flavor_base/build_run/Dockerfile index d5dbfd24e..16a63e183 100644 --- a/exaslct_src/test/resources/test-flavor/flavor_base/build_run/Dockerfile +++ b/exaslct_src/test/resources/test-flavor/flavor_base/build_run/Dockerfile @@ -6,4 +6,5 @@ COPY --from={{build_deps}} /bin /bin COPY --from={{build_deps}} /opt /opt COPY --from={{build_deps}} /etc /etc -RUN mkdir /exaudf \ No newline at end of file +RUN mkdir /exaudf +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/exaslct_src/test/resources/test-flavor/flavor_base/flavor_test_build_run/Dockerfile b/exaslct_src/test/resources/test-flavor/flavor_base/flavor_test_build_run/Dockerfile index e882c90df..b92076e41 100644 --- a/exaslct_src/test/resources/test-flavor/flavor_base/flavor_test_build_run/Dockerfile +++ b/exaslct_src/test/resources/test-flavor/flavor_base/flavor_test_build_run/Dockerfile @@ -7,5 +7,6 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN mkdir /exaudf \ No newline at end of file diff --git a/exaslct_src/test/resources/test-flavor/flavor_base/release/Dockerfile b/exaslct_src/test/resources/test-flavor/flavor_base/release/Dockerfile index cd5e67e89..8f00c3374 100644 --- a/exaslct_src/test/resources/test-flavor/flavor_base/release/Dockerfile +++ b/exaslct_src/test/resources/test-flavor/flavor_base/release/Dockerfile @@ -12,6 +12,7 @@ COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile index d5ca07b65..75c6eef32 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_run/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_run/Dockerfile index 4f787bec5..c7c075989 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_run/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define r=true //:exaudfclient"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile index 8e14324e3..8d38f7f50 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{ language_deps }} -RUN mkdir -p /packages/flavor_base_deps -COPY flavor_base_deps/packages/apt_get_packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages/flavor_base_deps +COPY flavor_base_deps/packages/apt_get_packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -12,10 +12,10 @@ RUN apt-get -y update && \ ldconfig COPY scripts /scripts -COPY flavor_base_deps/packages/cran_packages /packages/flavor_base_deps +COPY flavor_base_deps/packages/cran_packages /build_info/packages/flavor_base_deps RUN R CMD javareconf -RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /packages/flavor_base_deps/cran_packages +RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /build_info/packages/flavor_base_deps/cran_packages #TODO add build args to docker_build, in this case for number of cores #TODO do we need the r package shiny? Probably not, it is a web app? #TODO do we need the r package rgl, because it needs an X server \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile index ef60efb2e..26f350ea9 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages -COPY language_deps/packages /packages/language_deps +RUN mkdir -p /build_info/packages +COPY language_deps/packages /build_info/packages/language_deps # ppa:marutter/rrutter3.5 needed for R 3.5 RUN apt-get update && \ apt-get -y install software-properties-common && \ add-apt-repository -y ppa:marutter/rrutter3.5 && \ apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/release/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/release/Dockerfile index 2cc1ceb15..8b521fb09 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/release/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile b/flavors/fancyr-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile index d6e61dde6..e481c1239 100644 --- a/flavors/fancyr-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile index a1af50cb4..84a456ffc 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_run/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_run/Dockerfile index 4f787bec5..c7c075989 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_run/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define r=true //:exaudfclient"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile index 8e14324e3..8d38f7f50 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{ language_deps }} -RUN mkdir -p /packages/flavor_base_deps -COPY flavor_base_deps/packages/apt_get_packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages/flavor_base_deps +COPY flavor_base_deps/packages/apt_get_packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -12,10 +12,10 @@ RUN apt-get -y update && \ ldconfig COPY scripts /scripts -COPY flavor_base_deps/packages/cran_packages /packages/flavor_base_deps +COPY flavor_base_deps/packages/cran_packages /build_info/packages/flavor_base_deps RUN R CMD javareconf -RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /packages/flavor_base_deps/cran_packages +RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /build_info/packages/flavor_base_deps/cran_packages #TODO add build args to docker_build, in this case for number of cores #TODO do we need the r package shiny? Probably not, it is a web app? #TODO do we need the r package rgl, because it needs an X server \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps_2/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps_2/Dockerfile index 7bb1e8dd0..43768f896 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps_2/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_base_deps_2/Dockerfile @@ -1,10 +1,10 @@ FROM {{ flavor_base_deps }} -RUN mkdir -p /packages/flavor_base_deps_2 +RUN mkdir -p /build_info/packages/flavor_base_deps_2 -COPY flavor_base_deps_2/packages/cran_packages /packages/flavor_base_deps_2 +COPY flavor_base_deps_2/packages/cran_packages /build_info/packages/flavor_base_deps_2 -RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /packages/flavor_base_deps_2/cran_packages +RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\",Ncpus=\"2\")'" '"<>"' "," /build_info/packages/flavor_base_deps_2/cran_packages #TODO add build args to docker_build, in this case for number of cores #TODO do we need the r package shiny? Probably not, it is a web app? #TODO do we need the r package rgl, because it needs an X server \ No newline at end of file diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile index ba45ace48..3b0dbbc1d 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile @@ -1,7 +1,7 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages -COPY language_deps/packages /packages/language_deps +RUN mkdir -p /build_info/packages +COPY language_deps/packages /build_info/packages/language_deps # ppa:marutter/rrutter3.5 needed for R 3.5 RUN apt-get update && \ @@ -9,7 +9,7 @@ RUN apt-get update && \ gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | apt-key add - && \ add-apt-repository -y 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' && \ apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/release/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/release/Dockerfile index e5b692835..226f5996c 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/release/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info diff --git a/flavors/fancyr-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile b/flavors/fancyr-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile index 444be9a63..57ed2e741 100644 --- a/flavors/fancyr-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/fancyr-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile index d5ca07b65..75c6eef32 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_run/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_run/Dockerfile index 0aa7c9211..5ba90cb6c 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_run/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define python=true //:exaudfclient_py3"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile index 4b04d2499..ee5cf5104 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{ language_deps }} -RUN mkdir -p /packages -COPY flavor_base_deps/packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages +COPY flavor_base_deps/packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ apt-get -y autoremove && \ ldconfig -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /packages/flavor_base_deps/pip3_packages \ No newline at end of file +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /build_info/packages/flavor_base_deps/pip3_packages \ No newline at end of file diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile index 0b392d77d..6c5cd6b2d 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages/language_deps -COPY language_deps/packages/apt_get_packages /packages/language_deps +RUN mkdir -p /build_info/packages/language_deps +COPY language_deps/packages/apt_get_packages /build_info/packages/language_deps # ppa:deadsnakes/ppa needed for python3.6 under ubuntu:16.04 RUN apt-get update && \ apt-get -y install software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -20,8 +20,8 @@ RUN curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py && \ rm get-pip.py COPY scripts /scripts -COPY language_deps/packages/pip3_packages /packages/language_deps -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /packages/language_deps/pip3_packages +COPY language_deps/packages/pip3_packages /build_info/packages/language_deps +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /build_info/packages/language_deps/pip3_packages ENV PYTHON3_PREFIX /usr ENV PYTHON3_VERSION python3.6 diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/release/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/release/Dockerfile index 2cc1ceb15..8b521fb09 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/release/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile index d6e61dde6..e481c1239 100644 --- a/flavors/python3-ds-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile index a1af50cb4..84a456ffc 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_run/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_run/Dockerfile index 0aa7c9211..31b26279f 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_run/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define python=true //:exaudfclient_py3"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile index 4b04d2499..ee5cf5104 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{ language_deps }} -RUN mkdir -p /packages -COPY flavor_base_deps/packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages +COPY flavor_base_deps/packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ apt-get -y autoremove && \ ldconfig -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /packages/flavor_base_deps/pip3_packages \ No newline at end of file +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /build_info/packages/flavor_base_deps/pip3_packages \ No newline at end of file diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile index 27bb9a7e8..50447877f 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages/language_deps -COPY language_deps/packages/apt_get_packages /packages/language_deps +RUN mkdir -p /build_info/packages/language_deps +COPY language_deps/packages/apt_get_packages /build_info/packages/language_deps # ppa:deadsnakes/ppa needed for python3.6 under ubuntu:16.04 RUN apt-get update && \ apt-get -y install software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -19,8 +19,8 @@ RUN curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py && \ python3.6 get-pip.py && \ rm get-pip.py COPY scripts /scripts -COPY language_deps/packages/pip3_packages /packages/language_deps -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /packages/language_deps/pip3_packages +COPY language_deps/packages/pip3_packages /build_info/packages/language_deps +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /build_info/packages/language_deps/pip3_packages ENV PYTHON3_PREFIX /usr ENV PYTHON3_VERSION python3.6 diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/release/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/release/Dockerfile index e5b692835..87f2588d9 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/release/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile index 444be9a63..57ed2e741 100644 --- a/flavors/python3-ds-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/python3-ds-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile index 66dd519a8..1157d1ee2 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_run/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_run/Dockerfile index 0aa7c9211..31b26279f 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_run/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define python=true //:exaudfclient_py3"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile index 4b04d2499..ee5cf5104 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{ language_deps }} -RUN mkdir -p /packages -COPY flavor_base_deps/packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages +COPY flavor_base_deps/packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ apt-get -y autoremove && \ ldconfig -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /packages/flavor_base_deps/pip3_packages \ No newline at end of file +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "'<>'" " " /build_info/packages/flavor_base_deps/pip3_packages \ No newline at end of file diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile index 27bb9a7e8..50447877f 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile @@ -1,14 +1,14 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages/language_deps -COPY language_deps/packages/apt_get_packages /packages/language_deps +RUN mkdir -p /build_info/packages/language_deps +COPY language_deps/packages/apt_get_packages /build_info/packages/language_deps # ppa:deadsnakes/ppa needed for python3.6 under ubuntu:16.04 RUN apt-get update && \ apt-get -y install software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -19,8 +19,8 @@ RUN curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py && \ python3.6 get-pip.py && \ rm get-pip.py COPY scripts /scripts -COPY language_deps/packages/pip3_packages /packages/language_deps -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /packages/language_deps/pip3_packages +COPY language_deps/packages/pip3_packages /build_info/packages/language_deps +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP" "pip install --ignore-installed <>" "<>" " " /build_info/packages/language_deps/pip3_packages ENV PYTHON3_PREFIX /usr ENV PYTHON3_VERSION python3.6 diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/release/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/release/Dockerfile index 4a1cd6883..7f2f0a8be 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/release/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile index 7053f5788..c878e0968 100644 --- a/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/python3-ds-cuda-preview-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile @@ -6,13 +6,13 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get update RUN apt-get update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile index d5ca07b65..75c6eef32 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/build_run/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/build_run/Dockerfile index 4597b1cae..cdf6037a1 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/build_run/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define r=true --define python=true --define java=true //:exaudfclient"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile index 79ea8e86d..69d1de23d 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{ language_deps }} -RUN mkdir -p /packages/flavor_base_deps -COPY flavor_base_deps/packages/apt_get_packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages/flavor_base_deps +COPY flavor_base_deps/packages/apt_get_packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -12,9 +12,9 @@ RUN apt-get -y update && \ ldconfig COPY scripts /scripts -COPY flavor_base_deps/packages/cran_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\")'" '"<>"' "," /packages/flavor_base_deps/cran_packages -COPY flavor_base_deps/packages/pip_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "PYTHON2-PIP" "pip install <>" "<>" " " /packages/flavor_base_deps/pip_packages -COPY flavor_base_deps/packages/pip3_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP3" "pip3 install <>" "<>" " " /packages/flavor_base_deps/pip3_packages \ No newline at end of file +COPY flavor_base_deps/packages/cran_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\")'" '"<>"' "," /build_info/packages/flavor_base_deps/cran_packages +COPY flavor_base_deps/packages/pip_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "PYTHON2-PIP" "pip install <>" "<>" " " /build_info/packages/flavor_base_deps/pip_packages +COPY flavor_base_deps/packages/pip3_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP3" "pip3 install <>" "<>" " " /build_info/packages/flavor_base_deps/pip3_packages \ No newline at end of file diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile index 78e62d181..38a4f9d25 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/language_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages -COPY language_deps/packages /packages/language_deps +RUN mkdir -p /build_info/packages +COPY language_deps/packages /build_info/packages/language_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/release/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/release/Dockerfile index 2cc1ceb15..d466bacb1 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/release/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/release/Dockerfile @@ -6,16 +6,16 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info/packages /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info \ No newline at end of file diff --git a/flavors/standard-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile index d6e61dde6..e481c1239 100644 --- a/flavors/standard-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.0.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile index 2dfe9b4fa..62e85c2b2 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/base_test_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{build_deps}} -RUN mkdir -p /packages -COPY base_test_deps/packages /packages/base_test_deps +RUN mkdir -p /build_info/packages +COPY base_test_deps/packages /build_info/packages/base_test_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/base_test_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/base_test_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile index a1af50cb4..84a456ffc 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/build_deps/Dockerfile @@ -5,11 +5,11 @@ ENV ARCHIVE_UBUNTU_PREFIX="" RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY build_deps/packages /packages/build_deps +RUN mkdir -p /build_info/packages +COPY build_deps/packages /build_info/packages/build_deps RUN apt-get -y update && \ - apt-get install -y $(cat /packages/build_deps/apt_get_packages) && \ + apt-get install -y $(cat /build_info/packages/build_deps/apt_get_packages) && \ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \ curl https://bazel.build/bazel-release.pub.gpg | apt-key add - && \ apt-get update && \ diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/build_run/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/build_run/Dockerfile index fda078b52..7657ce3e4 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/build_run/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/build_run/Dockerfile @@ -16,4 +16,6 @@ COPY src/ /exaudf_src/ WORKDIR /exaudf_src/ RUN ["/bin/bash", "-c", "source /env && bash build.sh -c opt --define r=true --define python=true --define java=true //:exaudfclient //:exaudfclient_py3"] -RUN cp -r -L bazel-bin/* /exaudf \ No newline at end of file +RUN cp -r -L bazel-bin/* /exaudf + +COPY --from={{build_deps}} /build_info /build_info \ No newline at end of file diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile index 79ea8e86d..69d1de23d 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_base_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{ language_deps }} -RUN mkdir -p /packages/flavor_base_deps -COPY flavor_base_deps/packages/apt_get_packages /packages/flavor_base_deps +RUN mkdir -p /build_info/packages/flavor_base_deps +COPY flavor_base_deps/packages/apt_get_packages /build_info/packages/flavor_base_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/flavor_base_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/flavor_base_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ @@ -12,9 +12,9 @@ RUN apt-get -y update && \ ldconfig COPY scripts /scripts -COPY flavor_base_deps/packages/cran_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\")'" '"<>"' "," /packages/flavor_base_deps/cran_packages -COPY flavor_base_deps/packages/pip_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "PYTHON2-PIP" "pip install <>" "<>" " " /packages/flavor_base_deps/pip_packages -COPY flavor_base_deps/packages/pip3_packages /packages/flavor_base_deps -RUN /scripts/install_packages_batch.sh "PYTHON3-PIP3" "pip3 install <>" "<>" " " /packages/flavor_base_deps/pip3_packages \ No newline at end of file +COPY flavor_base_deps/packages/cran_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "CRAN" "Rscript -e 'install.packages(c(<>),repos=\"http://cran.r-project.org\")'" '"<>"' "," /build_info/packages/flavor_base_deps/cran_packages +COPY flavor_base_deps/packages/pip_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "PYTHON2-PIP" "pip install <>" "<>" " " /build_info/packages/flavor_base_deps/pip_packages +COPY flavor_base_deps/packages/pip3_packages /build_info/packages/flavor_base_deps +RUN /scripts/install_packages_batch.sh "PYTHON3-PIP3" "pip3 install <>" "<>" " " /build_info/packages/flavor_base_deps/pip3_packages \ No newline at end of file diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile index 43a541fa0..c7b2d721c 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/flavor_test_build_run/Dockerfile @@ -7,6 +7,7 @@ COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /etc /etc +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile index 7c7be4dc0..74c215d25 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/language_deps/Dockerfile @@ -1,10 +1,10 @@ FROM {{udfclient_deps}} -RUN mkdir -p /packages -COPY language_deps/packages /packages/language_deps +RUN mkdir -p /build_info/packages +COPY language_deps/packages /build_info/packages/language_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/language_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/language_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/release/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/release/Dockerfile index f2079ff33..0b9d81bd4 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/release/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/release/Dockerfile @@ -6,17 +6,17 @@ COPY --from={{language_deps}} /lib /lib COPY --from={{language_deps}} /bin /bin COPY --from={{language_deps}} /opt /opt COPY --from={{language_deps}} /etc /etc -COPY --from={{language_deps}} /packages /packages +COPY --from={{language_deps}} /build_info /build_info COPY --from={{flavor_customization}} /usr /usr COPY --from={{flavor_customization}} /lib /lib COPY --from={{flavor_customization}} /bin /bin COPY --from={{flavor_customization}} /opt /opt COPY --from={{flavor_customization}} /etc /etc -COPY --from={{flavor_customization}} /packages /packages +COPY --from={{flavor_customization}} /build_info /build_info RUN ldconfig COPY --from={{build_run}} /exaudf /exaudf - +COPY --from={{build_run}} /build_info /build_info diff --git a/flavors/standard-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile index 444be9a63..57ed2e741 100644 --- a/flavors/standard-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/standard-EXASOL-6.1.0/flavor_base/udfclient_deps/Dockerfile @@ -6,11 +6,11 @@ RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNT COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -RUN mkdir -p /packages -COPY udfclient_deps/packages /packages/udfclient_deps +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps RUN apt-get -y update && \ - apt-get -y install $(cat /packages/udfclient_deps/apt_get_packages) && \ + apt-get -y install $(cat /build_info/packages/udfclient_deps/apt_get_packages) && \ locale-gen en_US.UTF-8 && \ update-locale LC_ALL=en_US.UTF-8 && \ apt-get -y clean && \ diff --git a/travis/build_build_run.sh b/travis/build_build_run.sh index c4185b402..bf57cfde8 100755 --- a/travis/build_build_run.sh +++ b/travis/build_build_run.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) $FORCE_REBUILD --goal build_run --force-rebuild-from build_run $*" +command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) --build-name '$($SCRIPT_DIR/build_name.sh)' $FORCE_REBUILD --goal build_run --force-rebuild-from build_run $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/build_flavor_base_deps.sh b/travis/build_flavor_base_deps.sh index 1a925d7d6..a2ca37906 100755 --- a/travis/build_flavor_base_deps.sh +++ b/travis/build_flavor_base_deps.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) $FORCE_REBUILD --goal flavor_base_deps --force-rebuild-from flavor_base_deps $*" +command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) --build-name '$($SCRIPT_DIR/build_name.sh)' $FORCE_REBUILD --goal flavor_base_deps --force-rebuild-from flavor_base_deps $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/build_language_deps_and_build_deps.sh b/travis/build_language_deps_and_build_deps.sh index 4be94a412..228e59d91 100755 --- a/travis/build_language_deps_and_build_deps.sh +++ b/travis/build_language_deps_and_build_deps.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) $FORCE_REBUILD --goal language_deps --goal build_deps $*" +command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) --build-name '$($SCRIPT_DIR/build_name.sh)' $FORCE_REBUILD --goal language_deps --goal build_deps $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/build_name.sh b/travis/build_name.sh new file mode 100755 index 000000000..56940f0f7 --- /dev/null +++ b/travis/build_name.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo "TravisCI_${TRAVIS_REPO_SLUG}_${TRAVIS_BUILD_NUMBER}_${TRAVIS_BUILD_ID}_${TRAVIS_BUILD_WEB_URL}" \ No newline at end of file diff --git a/travis/build_release.sh b/travis/build_release.sh index 6baffbed2..fafddfb5f 100755 --- a/travis/build_release.sh +++ b/travis/build_release.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) $FORCE_REBUILD --goal release --force-rebuild-from release --force-rebuild-from flavor_customization $*" +command="./exaslct push $($SCRIPT_DIR/docker_options_build.sh) --build-name '$($SCRIPT_DIR/build_name.sh)' $FORCE_REBUILD --goal release --force-rebuild-from release --force-rebuild-from flavor_customization $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/deploy_images_for_commit.sh b/travis/deploy_images_for_commit.sh index a43f2f97b..8cea8460e 100755 --- a/travis/deploy_images_for_commit.sh +++ b/travis/deploy_images_for_commit.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push --push-all $($SCRIPT_DIR/docker_options_deploy_commit.sh) $*" +command="./exaslct push --force-push --push-all --build-name '$($SCRIPT_DIR/build_name.sh)' $($SCRIPT_DIR/docker_options_deploy_commit.sh) $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/deploy_images_to_public.sh b/travis/deploy_images_to_public.sh index bc5e8ee5c..f212edf9c 100755 --- a/travis/deploy_images_to_public.sh +++ b/travis/deploy_images_to_public.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct push --push-all $($SCRIPT_DIR/docker_options_deploy_to_public.sh) $*" +command="./exaslct push --force-push --push-all --build-name '$($SCRIPT_DIR/build_name.sh)' $($SCRIPT_DIR/docker_options_deploy_to_public.sh) $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/export.sh b/travis/export.sh index b1eba5c54..64cccd377 100755 --- a/travis/export.sh +++ b/travis/export.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct export $($SCRIPT_DIR/docker_options_deploy_to_public.sh) $*" +command="./exaslct export --build-name '$($SCRIPT_DIR/build_name.sh)' $($SCRIPT_DIR/docker_options_deploy_to_public.sh) $*" echo "Executing command: $command" bash -c "$command" \ No newline at end of file diff --git a/travis/run_db_test.sh b/travis/run_db_test.sh index d2e4294f4..1b269c039 100755 --- a/travis/run_db_test.sh +++ b/travis/run_db_test.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -command="./exaslct run-db-test $($SCRIPT_DIR/docker_options_build.sh) $*" +command="./exaslct run-db-test --build-name '$($SCRIPT_DIR/build_name.sh)' $($SCRIPT_DIR/docker_options_build.sh) $*" echo "Executing command: $command" bash -c "$command"