Skip to content

Commit

Permalink
#980: Moved flavor template-Exasol-all-java-17 to script-languages re…
Browse files Browse the repository at this point in the history
…po (#459)
  • Loading branch information
tomuben authored Oct 16, 2024
1 parent a2a2f0b commit 78c5a28
Show file tree
Hide file tree
Showing 31 changed files with 596 additions and 0 deletions.
7 changes: 7 additions & 0 deletions aws-code-build/ci/buildspec.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions flavors/template-Exasol-all-java-17/FLAVOR_DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Details for r-4-minimal-EXASOL-6.2.0

## Packages

- [UDFclient dependencies](flavor_base/udfclient_deps/packages/apt_get_packages)
- [Language dependencies](flavor_base/language_deps/packages/apt_get_packages)
- Flavor packages
- [Ubuntu packages](flavor_base/flavor_base_deps/packages/apt_get_packages)
- Customization
- [Ubuntu packages](flavor_customization/packages/apt_get_packages)
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FROM {{language_deps}}

RUN mkdir /conf /buckets

COPY --from={{base_test_deps}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /env /env
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

RUN mkdir /exaudfclient /exaudf
COPY /exaudfclient /exaudfclient

WORKDIR /exaudfclient/
RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty -c dbg --config java --config test-binaries"]
RUN cp -r -L bazel-bin/* /exaudf && rm -r /exaudf/external
RUN rm -r /root/.cache/bazel #Delete bazel cache as it contains java rules with special characters which will cause a problem for Bucketfs

WORKDIR /exaudfclient/base
RUN ./test_udfclient.sh /exaudf/exaudfclient

WORKDIR /
RUN mkdir /exasol_emulator
COPY emulator/ /exasol_emulator
COPY /exaudfclient/base/exaudflib/zmqcontainer.proto /exasol_emulator
RUN cd /exasol_emulator && protoc zmqcontainer.proto --python_out=.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM {{build_deps}}

RUN mkdir -p /build_info/packages
COPY base_test_deps/packages /build_info/packages/base_test_deps

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/base_test_deps/apt_get_packages --with-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
gdb|12.1-0ubuntu1~22.04.2
valgrind|1:3.18.1-1ubuntu2
gdbserver|12.1-0ubuntu1~22.04.2
binutils|2.38-4ubuntu2.6
patchelf|0.14.3-1
strace|5.16-0ubuntu3
chrpath|0.16-2
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

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
COPY scripts /scripts

RUN mkdir -p /build_info/packages
COPY build_deps/packages /build_info/packages/build_deps

ENV BAZEL_PACKAGE_VERSION="7.2.1"
ENV BAZEL_PACKAGE_FILE="bazel_$BAZEL_PACKAGE_VERSION-linux-x86_64.deb"
ENV BAZEL_PACKAGE_URL="https://github.com/bazelbuild/bazel/releases/download/$BAZEL_PACKAGE_VERSION/$BAZEL_PACKAGE_FILE"

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/build_deps/apt_get_packages --with-versions

RUN apt-get -y update && \
curl -L --output "$BAZEL_PACKAGE_FILE" "$BAZEL_PACKAGE_URL" && \
apt-get install -y "./$BAZEL_PACKAGE_FILE" && \
rm "$BAZEL_PACKAGE_FILE" && \
apt-get -y clean && \
apt-get -y autoremove

RUN curl -L -o swig-2.0.4.tar.gz https://exasol-script-languages-dependencies.s3.eu-central-1.amazonaws.com/swig-2.0.4.tar.gz && \
tar zxf swig-2.0.4.tar.gz && \
(cd swig-2.0.4 && ./configure --prefix=/usr && make && make install) && \
rm -rf swig-2.0.4 swig-2.0.4.tar.gz

RUN locale-gen en_US.UTF-8 && \
update-locale LC_ALL=en_US.UTF-8 && \
ldconfig

RUN touch /env && \
echo "export PROTOBUF_BIN=/usr/bin/protoc" >> /env && \
echo "export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64" >> /env
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
coreutils|8.32-4.1ubuntu1.2
locales|2.35-0ubuntu3.8
tar|1.34+dfsg-1ubuntu0.1.22.04.2
curl|7.81.0-1ubuntu1.18
openjdk-17-jdk-headless|17.0.12+7-1ubuntu2~22.04
build-essential|12.9ubuntu3
libpcre3-dev|2:8.39-13ubuntu0.22.04.1
protobuf-compiler|3.12.4-1ubuntu7.22.04.1
chrpath|0.16-2
python3|3.10.6-1~22.04.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
FROM {{language_deps}}

COPY --from={{build_deps}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /env /env
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

RUN mkdir /exaudfclient /exaudf /exaudf/src
COPY /exaudfclient /exaudfclient

WORKDIR /exaudfclient/
RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty --config optimize --config java --config fast-binary"]
RUN cp -r -L bazel-bin/* /exaudf && rm -r /exaudf/external

WORKDIR /exaudfclient/base
RUN ./test_udfclient.sh /exaudf/exaudfclient

WORKDIR /exaudf/

RUN rm -r /exaudfclient

COPY --from={{build_deps}} /build_info /build_info
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN mkdir /conf /buckets
147 changes: 147 additions & 0 deletions flavors/template-Exasol-all-java-17/flavor_base/build_steps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
from typing import Dict

from exasol.slc.internal.tasks.build.docker_flavor_image_task import DockerFlavorAnalyzeImageTask


class AnalyzeUDFClientDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "udfclient_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"01_nodoc": "ext/01_nodoc","scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeLanguageDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "language_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"scripts": "ext/scripts"}

def requires_tasks(self):
return {"udfclient_deps": AnalyzeUDFClientDeps}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBuildDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "build_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"01_nodoc": "ext/01_nodoc", "scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "build_run"

def requires_tasks(self):
return {"build_deps": AnalyzeBuildDeps,
"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"exaudfclient": "exaudfclient"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBaseTestDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "base_test_deps"

def requires_tasks(self):
return {"build_deps": AnalyzeBuildDeps}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBaseTestBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "base_test_build_run"

def requires_tasks(self):
return {"base_test_deps": AnalyzeBaseTestDeps,
"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"exaudfclient": "exaudfclient", "emulator": "emulator"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeFlavorBaseDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_base_deps"

def requires_tasks(self):
return {"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self):
return {"01_nodoc": "ext/01_nodoc", "scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeFlavorCustomization(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_customization"

def requires_tasks(self):
return {"flavor_base_deps": AnalyzeFlavorBaseDeps}


class AnalyzeFlavorTestBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_test_build_run"

def requires_tasks(self):
return {"flavor_customization": AnalyzeFlavorCustomization,
"base_test_build_run": AnalyzeBaseTestBuildRun}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeRelease(DockerFlavorAnalyzeImageTask):
def get_build_step(self) -> str:
return "release"

def requires_tasks(self):
return {"flavor_customization": AnalyzeFlavorCustomization,
"build_run": AnalyzeBuildRun,
"language_deps": AnalyzeLanguageDeps}

def get_path_in_flavor(self):
return "flavor_base"


class SecurityScan(DockerFlavorAnalyzeImageTask):
def get_build_step(self) -> str:
return "security_scan"

def requires_tasks(self):
return {"release": AnalyzeRelease}

def get_path_in_flavor(self):
return "flavor_base"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM {{ language_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 /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/flavor_base_deps/apt_get_packages --with-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
coreutils|8.32-4.1ubuntu1.2
locales|2.35-0ubuntu3.8
unzip|6.0-26ubuntu3.2
wget|1.21.2-2ubuntu1.1
git|1:2.34.1-1ubuntu1.11
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM {{base_test_build_run}}

RUN mkdir -p /conf /buckets

COPY --from={{flavor_customization}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /build_info /build_info
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
JAVA=localzmq+protobuf:///{{ bucketfs_name }}/{{ bucket_name }}/{{ path_in_bucket }}{{ release_name }}?lang=java#buckets/{{ bucketfs_name }}/{{ bucket_name }}/{{ path_in_bucket }}{{ release_name }}/exaudf/exaudfclient
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM {{udfclient_deps}}

COPY language_deps/packages /build_info/packages/language_deps

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/language_deps/apt_get_packages --with-versions

ENV JAVA_PREFIX /usr/lib/jvm/java-17-openjdk-amd64
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ca-certificates|20240203~22.04.1
curl|7.81.0-1ubuntu1.18
openjdk-17-jdk-headless|17.0.12+7-1ubuntu2~22.04
Loading

0 comments on commit 78c5a28

Please sign in to comment.