From 1adafc428b695272d24cc872ae250f0795ea516f Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Fri, 6 Mar 2026 15:18:09 -0300 Subject: [PATCH 1/8] #1383: Used exaslpm to build template-Exasol-all-python-3.10-conda flavor --- .../base_test_build_run/Dockerfile | 7 +- .../flavor_base/base_test_deps/Dockerfile | 4 +- .../flavor_base/build_deps/Dockerfile | 11 +- .../flavor_base/build_run/Dockerfile | 10 +- .../flavor_base/conda_deps/Dockerfile | 18 +-- .../conda_deps/_activate_current_env.sh | 15 --- .../flavor_base/flavor_base_deps/Dockerfile | 6 +- .../flavor_base/language_deps/Dockerfile | 6 +- .../flavor_base/packages.yml | 68 +++++++++++ .../flavor_base/security_scan/Dockerfile | 9 +- .../flavor_base/testconfig | 2 - .../flavor_base/udfclient_deps/Dockerfile | 8 +- .../flavor_customization/Dockerfile | 6 +- .../packages.yml | 111 ++++++++++++++++++ 14 files changed, 208 insertions(+), 73 deletions(-) delete mode 100644 flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/_activate_current_env.sh create mode 100644 flavors/template-Exasol-all-python-3.10-conda/flavor_base/packages.yml delete mode 100644 flavors/template-Exasol-all-python-3.10-conda/flavor_base/testconfig create mode 100644 flavors/template-Exasol-all-python-3.10-conda/packages.yml diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile index e4dcea215..59bb5c334 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile @@ -2,6 +2,8 @@ FROM {{base_test_deps}} RUN mkdir /conf /buckets +RUN exaslpm export-variables --out-file /env + RUN ldconfig RUN mkdir /exaudfclient /exaudf @@ -9,10 +11,7 @@ COPY /exaudfclient/ /exaudfclient/ WORKDIR /exaudfclient/ # We need to build with optimize here, because the debug build fails to run with a runtime linking error regarding protobuf -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAMBA_ROOT_PREFIX/lib/ -ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/ -ENV C_INCLUDE_PATH=$C_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/ -RUN ./build.sh --config no-tty -c dbg --config python --config test-binaries +RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty -c dbg --config python --config test-binaries"] RUN cp -r -L bazel-bin/* /exaudf WORKDIR /exaudfclient/base diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile index 3a8ca3f61..959638d89 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile @@ -1,6 +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 +COPY base_test_deps_packages.yaml /build_info/packages/base_test_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/base_test_deps_packages.yaml --build-step base_test_deps diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile index 83c1a61bf..4dfe5dcab 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile @@ -1,13 +1,14 @@ FROM {{language_deps}} RUN mkdir -p /build_info/packages -COPY build_deps/packages /build_info/packages/build_deps -RUN /scripts/install_scripts/install_via_conda.pl --file /build_info/packages/build_deps/conda_packages --channel-file /build_info/packages/build_deps/conda_channels --with-versions --conda-binary "$MAMBA_ROOT_PREFIX/bin/mamba" +COPY build_deps_packages.yaml /build_info/packages/build_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/build_deps_packages.yaml --build-step build_deps -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 && \ +RUN exaslpm export-variables --out-file /env + +RUN ["/bin/bash", "-c", "source /env && $MAMBA_BIN run bash -c \"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 + rm -rf swig-2.0.4 swig-2.0.4.tar.gz\""] -ENV PROTOBUF_BIN=$MAMBA_ROOT_PREFIX/bin/protoc diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile index 92b8f2343..0581614fb 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile @@ -1,13 +1,13 @@ FROM {{build_deps}} +RUN exaslpm export-variables --out-file /env + RUN mkdir /exaudfclient /exaudf COPY exaudfclient/ /exaudfclient/ WORKDIR /exaudfclient/ -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAMBA_ROOT_PREFIX/lib/ -ENV CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/ -ENV C_INCLUDE_PATH=$C_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/ -RUN ./build.sh --config no-tty --config optimize --config python --config fast-binary --config fix_conda_ar_tool + +RUN ["/bin/bash", "-c", "source /env && $MAMBA_BIN run bash build.sh --config no-tty --config optimize --config python --config fast-binary --config fix_conda_ar_tool"] RUN cp -r -L bazel-bin/* /exaudf WORKDIR /exaudfclient/base @@ -17,8 +17,6 @@ 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 diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index 93ffb34a9..8f643f097 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -1,32 +1,20 @@ -FROM ubuntu:22.04 +FROM exasol/script-language-container:exaslpm-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 conda_deps/packages /build_info/packages/conda_deps -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/conda_deps/apt_get_packages --with-versions - -ENV ENV_NAME="base" -ENV MAMBA_ROOT_PREFIX="/opt/conda" -ENV MAMBA_EXE="/bin/micromamba" -ENV MAMBA_DOCKERFILE_ACTIVATE=1 - -COPY conda_deps/_activate_current_env.sh /usr/local/bin/_activate_current_env.sh +COPY conda_deps_packages.yaml /build_info/packages/conda_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/conda_deps_packages.yaml --build-step conda_deps RUN addgroup --gid 1000 exasolution RUN adduser --disabled-login --uid 1000 --gid 1000 exasolution --gecos "First Last,RoomNumber,WorkPhone,HomePhone" RUN addgroup --gid 500 exausers RUN adduser --disabled-login --uid 500 --gid 500 exadefusr --gecos "First Last,RoomNumber,WorkPhone,HomePhone" -SHELL ["/bin/bash", "-l", "-c"] -ENV MICROMAMBA_VERSION=0.24.0 -RUN /scripts/install_scripts/install_micromamba.sh "$MICROMAMBA_VERSION" ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/_activate_current_env.sh b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/_activate_current_env.sh deleted file mode 100644 index 8c5f75ece..000000000 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/_activate_current_env.sh +++ /dev/null @@ -1,15 +0,0 @@ -# This script should never be called directly, only sourced: - -# source _activate_current_env.sh - -if [[ "${MAMBA_SKIP_ACTIVATE}" == "1" ]]; then - return -fi - -# Initialize the current shell -eval "$("${MAMBA_EXE}" shell hook --shell=bash)" - -# For robustness, try all possible activate commands. -conda activate "${ENV_NAME}" 2>/dev/null \ - || mamba activate "${ENV_NAME}" 2>/dev/null \ - || micromamba activate "${ENV_NAME}" diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile index 1124519bb..33483f9d5 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile @@ -1,10 +1,8 @@ FROM {{ language_deps }} RUN mkdir -p /build_info/packages -COPY flavor_base_deps/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 +COPY flavor_base_deps_packages.yaml /build_info/packages/flavor_base_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/flavor_base_deps_packages.yaml --build-step flavor_base_deps -RUN /scripts/install_scripts/install_via_conda.pl --file /build_info/packages/flavor_base_deps/conda_packages --channel-file /build_info/packages/flavor_base_deps/conda_channels --with-versions --conda-binary "$MAMBA_ROOT_PREFIX/bin/mamba" -RUN /scripts/install_scripts/install_via_pip.pl --file /build_info/packages/flavor_base_deps/python3_pip_packages --python-binary "$MAMBA_ROOT_PREFIX/bin/python3.10" --with-versions --allow-no-version diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile index c913d8955..dcb9156c6 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile @@ -1,10 +1,8 @@ FROM {{udfclient_deps}} RUN mkdir -p /build_info/packages/language_deps -COPY language_deps/packages/ /build_info/packages/language_deps -RUN /scripts/install_scripts/install_via_conda.pl --file /build_info/packages/language_deps/conda_packages --channel-file /build_info/packages/language_deps/conda_channels --with-versions --conda-binary /bin/micromamba +COPY language_deps_packages.yaml /build_info/packages/language_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/language_deps_packages.yaml --build-step language_deps -ENV PYTHON3_PREFIX="$MAMBA_ROOT_PREFIX" -ENV PYTHON3_VERSION=python3.10 diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/packages.yml b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/packages.yml new file mode 100644 index 000000000..c396c9033 --- /dev/null +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/packages.yml @@ -0,0 +1,68 @@ +build_steps: +- name: build_deps + phases: + - name: install_conda_packages + conda: + channels: + - conda-forge + packages: + - name: protobuf + version: =6.31.1 + - name: pcre + version: '=8.45' + - name: bazel + version: =8.3.1 + - name: gxx_linux-64 + version: =12.4.0 + - name: gcc_linux-64 + version: =12.4.0 + - name: make + version: '=4.3' + - name: chrpath + version: '=0.16' + binary: Mamba + variables: + PROTOBUF_BIN: /opt/conda/bin/protoc + LD_LIBRARY_PATH: '$LD_LIBRARY_PATH:$MAMBA_ROOT_PREFIX/lib/' + CPLUS_INCLUDE_PATH: '$CPLUS_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/' + C_INCLUDE_PATH: '$C_INCLUDE_PATH:$MAMBA_ROOT_PREFIX/include/' + validation_cfg: + version_mandatory: true +- name: base_test_deps + phases: + - name: install_apt_packages + apt: + packages: + - name: gdb + version: 12.1-0ubuntu1~22.04.2 + - name: valgrind + version: 1:3.18.1-1ubuntu2 + - name: gdbserver + version: 12.1-0ubuntu1~22.04.2 + - name: binutils + version: 2.38-4ubuntu2.12 + - name: patchelf + version: 0.14.3-1 + - name: strace + version: 5.16-0ubuntu3 + validation_cfg: + version_mandatory: true +- name: security_scan + phases: + - name: install_deps + apt: + packages: + - name: gnupg + - name: install_trivy + apt: + repos: + trivy: + key_url: https://aquasecurity.github.io/trivy-repo/deb/public.key + entry: deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb + generic main + out_file: trivy.list + packages: + - name: trivy + validation_cfg: + version_mandatory: false +version: 1.0.0 diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile index 2147907af..22e983ad0 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile @@ -2,15 +2,12 @@ FROM {{release}} ENV DEBIAN_FRONTEND=noninteractive RUN mkdir -p /build_info/packages -COPY security_scan/packages /build_info/packages/security_scan -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/security_scan/apt_get_packages_trivy_deps -RUN curl -s https://aquasecurity.github.io/trivy-repo/deb/public.key | apt-key add - && \ - /scripts/install_scripts/install_ppa.pl --ppa 'deb https://aquasecurity.github.io/trivy-repo/deb bionic main' --out-file trivy.list -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/security_scan/apt_get_packages +COPY security_scan_packages.yaml /build_info/packages/security_scan_packages.yaml +RUN exaslpm install --package-file /build_info/packages/security_scan_packages.yaml --build-step security_scan ENV SECURITY_SCANNERS="trivy" COPY /security_scan/.trivyignore /.trivyignore COPY /security_scan/trivy.rego /trivy.rego COPY /security_scan/trivy.yaml /trivy.yaml -ENTRYPOINT ["/scripts/security_scan/run.sh"] \ No newline at end of file +ENTRYPOINT ["/scripts/security_scan/run.sh"] diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/testconfig b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/testconfig deleted file mode 100644 index d1bdb8113..000000000 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/testconfig +++ /dev/null @@ -1,2 +0,0 @@ -generic_language_tests=python3 -test_folders=python3/all pandas/all pandas/pandas2 diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile index f367d2b05..c70ce30ea 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile @@ -1,10 +1,6 @@ FROM {{ conda_deps }} -COPY udfclient_deps/packages /build_info/packages/udfclient_deps -RUN /scripts/install_scripts/install_via_conda.pl --file /build_info/packages/udfclient_deps/conda_packages --channel-file /build_info/packages/udfclient_deps/conda_channels --with-versions --conda-binary /bin/micromamba +COPY udfclient_deps_packages.yaml /build_info/packages/udfclient_deps_packages.yaml +RUN exaslpm install --package-file /build_info/packages/udfclient_deps_packages.yaml --build-step udfclient_deps -ENV PROTOBUF_LIBRARY_PREFIX=$MAMBA_ROOT_PREFIX/lib -ENV PROTOBUF_INCLUDE_PREFIX=$MAMBA_ROOT_PREFIX/include -ENV ZMQ_LIBRARY_PREFIX=$MAMBA_ROOT_PREFIX/lib -ENV ZMQ_INCLUDE_PREFIX=$MAMBA_ROOT_PREFIX/include diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile index 5c80ed8ee..8f4015cea 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile @@ -16,11 +16,9 @@ FROM {{flavor_base_deps}} RUN mkdir -p /build_info/packages/flavor_customization -COPY flavor_customization/packages /build_info/packages/flavor_customization -RUN /scripts/install_scripts/install_via_conda.pl --file /build_info/packages/flavor_customization/conda_packages --channel-file /build_info/packages/flavor_customization/conda_channels --with-versions --allow-no-version --conda-binary "$MAMBA_ROOT_PREFIX/bin/mamba" +COPY flavor_customization_packages.yaml /build_info/packages/flavor_customization_packages.yaml +RUN exaslpm install --package-file /build_info/packages/flavor_customization_packages.yaml --build-step flavor_customization -COPY flavor_customization/packages/python3_pip_packages /build_info/packages/flavor_customization -RUN /scripts/install_scripts/install_via_pip.pl --file /build_info/packages/flavor_customization/python3_pip_packages --python-binary "$MAMBA_ROOT_PREFIX/bin/python3.10" --with-versions --allow-no-version ########################################################################## ########################################################################## diff --git a/flavors/template-Exasol-all-python-3.10-conda/packages.yml b/flavors/template-Exasol-all-python-3.10-conda/packages.yml new file mode 100644 index 000000000..52661a970 --- /dev/null +++ b/flavors/template-Exasol-all-python-3.10-conda/packages.yml @@ -0,0 +1,111 @@ +build_steps: +- name: conda_deps + phases: + - name: install_apt_packages + apt: + packages: + - name: coreutils + version: 8.32-4.1ubuntu1.2 + - name: locales + version: 2.35-0ubuntu3.13 + - name: curl + version: 7.81.0-1ubuntu1.22 + - name: ca-certificates + version: 20240203~22.04.1 + - name: bzip2 + version: 1.0.8-5build1 + - name: libxml2 + version: 2.9.13+dfsg-1ubuntu0.11 + - name: install_micromamba + tools: + micromamba: + version: 2.5.0-1 + root_prefix: /opt/conda + variables: + MAMBA_ROOT_PREFIX: /opt/conda + validation_cfg: + version_mandatory: true +- name: udfclient_deps + phases: + - name: install_conda_packages + conda: + channels: + - conda-forge + packages: + - name: libprotobuf + version: =6.31.1 + - name: zeromq + version: =4.3.5 + - name: nss + version: '=3.100' + - name: cppzmq + version: =4.10.0 + binary: Micromamba + variables: + PROTOBUF_LIBRARY_PREFIX: $MAMBA_ROOT_PREFIX/lib + PROTOBUF_INCLUDE_PREFIX: $MAMBA_ROOT_PREFIX/include + ZMQ_LIBRARY_PREFIX: $MAMBA_ROOT_PREFIX/lib + ZMQ_INCLUDE_PREFIX: $MAMBA_ROOT_PREFIX/include + validation_cfg: + version_mandatory: true +- name: language_deps + phases: + - name: install_conda_packages + conda: + channels: + - conda-forge + packages: + - name: python + version: =3.10.4 + - name: numpy + version: =1.26.2 + - name: pandas + version: =2.2.3 + - name: pyarrow + version: =22.0.0 + - name: mamba + version: =2.3.3 + binary: Micromamba + variables: + PYTHON3_PREFIX: $MAMBA_ROOT_PREFIX + PYTHON3_VERSION: python3.10 + MAMBA_BIN: $MAMBA_ROOT_PREFIX/bin/mamba + - name: configure_tools + tools: + mamba_binary_path: /opt/conda/bin/mamba + python_binary_path: /opt/conda/bin/python3.10 + validation_cfg: + version_mandatory: true +- name: flavor_base_deps + phases: + - name: install_apt_packages + apt: + packages: + - name: tzdata + version: 2025b-0ubuntu0.22.04.1 + - name: install_conda_packages + conda: + channels: + - conda-forge + packages: [] + binary: Mamba + validation_cfg: + version_mandatory: true +- name: flavor_customization + phases: + - name: install_conda_packages + conda: + channels: + - conda-forge + packages: [] +# - name: cuda-compat +# version: =12.9.1 + binary: Mamba + - name: install_pip_packages + pip: + packages: [] +# - name: tensorflow-probability +# version: =0.9.0 + validation_cfg: + version_mandatory: false +version: 1.0.0 From 8efe7334dcfa7ed4f9c2c1506f6a89b3c9021f54 Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Fri, 6 Mar 2026 16:49:52 -0300 Subject: [PATCH 2/8] Activated again setup of conda env in bash.rc --- .../install_scripts/_activate_current_env.sh | 15 ++++++++++ .../install_scripts/prepare_conda_env.sh | 30 +++++++++++++++++++ .../flavor_base/build_deps/Dockerfile | 7 ++--- .../flavor_base/build_run/Dockerfile | 2 +- .../flavor_base/conda_deps/Dockerfile | 10 +++++++ .../packages.yml | 1 - 6 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 ext/scripts/install_scripts/_activate_current_env.sh create mode 100755 ext/scripts/install_scripts/prepare_conda_env.sh diff --git a/ext/scripts/install_scripts/_activate_current_env.sh b/ext/scripts/install_scripts/_activate_current_env.sh new file mode 100644 index 000000000..8c5f75ece --- /dev/null +++ b/ext/scripts/install_scripts/_activate_current_env.sh @@ -0,0 +1,15 @@ +# This script should never be called directly, only sourced: + +# source _activate_current_env.sh + +if [[ "${MAMBA_SKIP_ACTIVATE}" == "1" ]]; then + return +fi + +# Initialize the current shell +eval "$("${MAMBA_EXE}" shell hook --shell=bash)" + +# For robustness, try all possible activate commands. +conda activate "${ENV_NAME}" 2>/dev/null \ + || mamba activate "${ENV_NAME}" 2>/dev/null \ + || micromamba activate "${ENV_NAME}" diff --git a/ext/scripts/install_scripts/prepare_conda_env.sh b/ext/scripts/install_scripts/prepare_conda_env.sh new file mode 100755 index 000000000..5b64355e2 --- /dev/null +++ b/ext/scripts/install_scripts/prepare_conda_env.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e +set -u +set -o pipefail + + +# Setup MAMBA_ROOT_PREFIX +mkdir -p "$MAMBA_ROOT_PREFIX/conda-meta" && \ +chmod -R a+rwx "$MAMBA_ROOT_PREFIX" && \ + +# Setting environment variables for activating micromamba +{ + echo "export ENV_NAME=$ENV_NAME" + echo "export MAMBA_ROOT_PREFIX=$MAMBA_ROOT_PREFIX" + echo "export MAMBA_EXE=$MAMBA_EXE" + echo "export MAMBA_DOCKERFILE_ACTIVATE=$MAMBA_DOCKERFILE_ACTIVATE" + cat /usr/local/bin/_activate_current_env.sh +} > /tmp/_activate_current_env.sh +cp /tmp/_activate_current_env.sh /usr/local/bin/_activate_current_env.sh +rm /tmp/_activate_current_env.sh + +# Activate micromamba for the bash +echo "source /usr/local/bin/_activate_current_env.sh" >> ~/.bashrc && \ +echo "source /usr/local/bin/_activate_current_env.sh" >> /etc/skel/.bashrc && \ +ln -s /usr/local/bin/_activate_current_env.sh /etc/profile.d/_activate_current_env.sh && \ +chmod -R a+rx /usr/local/bin/_activate_current_env.sh + +# Add conda lib directory to ld.so.conf +echo "$MAMBA_ROOT_PREFIX/lib" > /etc/ld.so.conf.d/conda.conf \ No newline at end of file diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile index 4dfe5dcab..e9b3f9090 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile @@ -5,10 +5,7 @@ RUN mkdir -p /build_info/packages COPY build_deps_packages.yaml /build_info/packages/build_deps_packages.yaml RUN exaslpm install --package-file /build_info/packages/build_deps_packages.yaml --build-step build_deps -RUN exaslpm export-variables --out-file /env - -RUN ["/bin/bash", "-c", "source /env && $MAMBA_BIN run bash -c \"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 && \ +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\""] - + rm -rf swig-2.0.4 swig-2.0.4.tar.gz diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile index 0581614fb..fa3a6786b 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_run/Dockerfile @@ -7,7 +7,7 @@ COPY exaudfclient/ /exaudfclient/ WORKDIR /exaudfclient/ -RUN ["/bin/bash", "-c", "source /env && $MAMBA_BIN run bash build.sh --config no-tty --config optimize --config python --config fast-binary --config fix_conda_ar_tool"] +RUN bash -c "source /env && ./build.sh --config no-tty --config optimize --config python --config fast-binary --config fix_conda_ar_tool" RUN cp -r -L bazel-bin/* /exaudf WORKDIR /exaudfclient/base diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index 8f643f097..ffddd8036 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -15,6 +15,16 @@ RUN adduser --disabled-login --uid 1000 --gid 1000 exasolution --gecos "First La RUN addgroup --gid 500 exausers RUN adduser --disabled-login --uid 500 --gid 500 exadefusr --gecos "First Last,RoomNumber,WorkPhone,HomePhone" +ENV MAMBA_EXE="/bin/micromamba" +ENV MAMBA_DOCKERFILE_ACTIVATE=1 +ENV ENV_NAME="base" +ENV MAMBA_ROOT_PREFIX="/opt/conda" + +COPY scripts/install_scripts/_activate_current_env.sh /usr/local/bin/_activate_current_env.sh + +RUN /scripts/install_scripts/prepare_conda_env.sh + +SHELL ["/bin/bash", "-l", "-c"] ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en diff --git a/flavors/template-Exasol-all-python-3.10-conda/packages.yml b/flavors/template-Exasol-all-python-3.10-conda/packages.yml index 52661a970..d81f6b90d 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/packages.yml +++ b/flavors/template-Exasol-all-python-3.10-conda/packages.yml @@ -69,7 +69,6 @@ build_steps: variables: PYTHON3_PREFIX: $MAMBA_ROOT_PREFIX PYTHON3_VERSION: python3.10 - MAMBA_BIN: $MAMBA_ROOT_PREFIX/bin/mamba - name: configure_tools tools: mamba_binary_path: /opt/conda/bin/mamba From d8ec12080d36cfb16b1929ec47d2198c13442f44 Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Mon, 9 Mar 2026 09:56:00 -0300 Subject: [PATCH 3/8] 1. Updated exaslpm version 2. Fixed base_test_build_run build-step --- .../flavor_base/base_test_build_run/Dockerfile | 2 +- .../flavor_base/conda_deps/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile index 59bb5c334..b6b9efe9d 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_build_run/Dockerfile @@ -11,7 +11,7 @@ COPY /exaudfclient/ /exaudfclient/ WORKDIR /exaudfclient/ # We need to build with optimize here, because the debug build fails to run with a runtime linking error regarding protobuf -RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty -c dbg --config python --config test-binaries"] +RUN bash -c "source /env && ./build.sh --config no-tty -c dbg --config python --config test-binaries" RUN cp -r -L bazel-bin/* /exaudf WORKDIR /exaudfclient/base diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index ffddd8036..88bb31ea6 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -1,4 +1,4 @@ -FROM exasol/script-language-container:exaslpm-ubuntu-22.04 +FROM exasol/script-language-container:exaslpm-1.0.0-ubuntu-22.04 ENV DEBIAN_FRONTEND=noninteractive From 1c81c1b521e7901c4a92ce830a5bee0c6e0989ed Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Mon, 9 Mar 2026 10:00:40 -0300 Subject: [PATCH 4/8] Disabled shellcheck warnings --- ext/scripts/install_scripts/_activate_current_env.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/scripts/install_scripts/_activate_current_env.sh b/ext/scripts/install_scripts/_activate_current_env.sh index 8c5f75ece..99d0714a2 100644 --- a/ext/scripts/install_scripts/_activate_current_env.sh +++ b/ext/scripts/install_scripts/_activate_current_env.sh @@ -1,3 +1,5 @@ +# shellcheck disable=SC2148 + # This script should never be called directly, only sourced: # source _activate_current_env.sh From 0061c1c4c2f0d69f32f1c4f34375460561eade1e Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Thu, 12 Mar 2026 13:09:55 -0300 Subject: [PATCH 5/8] Updated curl --- flavors/template-Exasol-all-python-3.10-conda/packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flavors/template-Exasol-all-python-3.10-conda/packages.yml b/flavors/template-Exasol-all-python-3.10-conda/packages.yml index d81f6b90d..f90d134c7 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/packages.yml +++ b/flavors/template-Exasol-all-python-3.10-conda/packages.yml @@ -9,7 +9,7 @@ build_steps: - name: locales version: 2.35-0ubuntu3.13 - name: curl - version: 7.81.0-1ubuntu1.22 + version: 7.81.0-1ubuntu1.23 - name: ca-certificates version: 20240203~22.04.1 - name: bzip2 From e7ecfc8461eeed7a285f3446b42e4a3b9fccdd48 Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Thu, 12 Mar 2026 13:22:56 -0300 Subject: [PATCH 6/8] Renamed _packages.yaml => _packages.yml in Dockerfile files --- .../flavor_base/base_test_deps/Dockerfile | 4 ++-- .../flavor_base/build_deps/Dockerfile | 4 ++-- .../flavor_base/conda_deps/Dockerfile | 4 ++-- .../flavor_base/flavor_base_deps/Dockerfile | 4 ++-- .../flavor_base/language_deps/Dockerfile | 4 ++-- .../flavor_base/security_scan/Dockerfile | 4 ++-- .../flavor_base/udfclient_deps/Dockerfile | 4 ++-- .../flavor_customization/Dockerfile | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile index 959638d89..dd98448db 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/base_test_deps/Dockerfile @@ -2,5 +2,5 @@ FROM {{build_deps}} RUN mkdir -p /build_info/packages -COPY base_test_deps_packages.yaml /build_info/packages/base_test_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/base_test_deps_packages.yaml --build-step base_test_deps +COPY base_test_deps_packages.yml /build_info/packages/base_test_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/base_test_deps_packages.yml --build-step base_test_deps diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile index e9b3f9090..cc2e07826 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/build_deps/Dockerfile @@ -2,8 +2,8 @@ FROM {{language_deps}} RUN mkdir -p /build_info/packages -COPY build_deps_packages.yaml /build_info/packages/build_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/build_deps_packages.yaml --build-step build_deps +COPY build_deps_packages.yml /build_info/packages/build_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/build_deps_packages.yml --build-step build_deps 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 && \ diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index 88bb31ea6..d6632b827 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -7,8 +7,8 @@ COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc COPY scripts /scripts RUN mkdir -p /build_info/packages -COPY conda_deps_packages.yaml /build_info/packages/conda_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/conda_deps_packages.yaml --build-step conda_deps +COPY conda_deps_packages.yml /build_info/packages/conda_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/conda_deps_packages.yml --build-step conda_deps RUN addgroup --gid 1000 exasolution RUN adduser --disabled-login --uid 1000 --gid 1000 exasolution --gecos "First Last,RoomNumber,WorkPhone,HomePhone" diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile index 33483f9d5..e8245247f 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/flavor_base_deps/Dockerfile @@ -2,7 +2,7 @@ FROM {{ language_deps }} RUN mkdir -p /build_info/packages -COPY flavor_base_deps_packages.yaml /build_info/packages/flavor_base_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/flavor_base_deps_packages.yaml --build-step flavor_base_deps +COPY flavor_base_deps_packages.yml /build_info/packages/flavor_base_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/flavor_base_deps_packages.yml --build-step flavor_base_deps diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile index dcb9156c6..1accd73d7 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/language_deps/Dockerfile @@ -2,7 +2,7 @@ FROM {{udfclient_deps}} RUN mkdir -p /build_info/packages/language_deps -COPY language_deps_packages.yaml /build_info/packages/language_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/language_deps_packages.yaml --build-step language_deps +COPY language_deps_packages.yml /build_info/packages/language_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/language_deps_packages.yml --build-step language_deps diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile index 22e983ad0..50b4070d7 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/security_scan/Dockerfile @@ -2,8 +2,8 @@ FROM {{release}} ENV DEBIAN_FRONTEND=noninteractive RUN mkdir -p /build_info/packages -COPY security_scan_packages.yaml /build_info/packages/security_scan_packages.yaml -RUN exaslpm install --package-file /build_info/packages/security_scan_packages.yaml --build-step security_scan +COPY security_scan_packages.yml /build_info/packages/security_scan_packages.yml +RUN exaslpm install --package-file /build_info/packages/security_scan_packages.yml --build-step security_scan ENV SECURITY_SCANNERS="trivy" COPY /security_scan/.trivyignore /.trivyignore diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile index c70ce30ea..51eaf8f10 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/udfclient_deps/Dockerfile @@ -1,6 +1,6 @@ FROM {{ conda_deps }} -COPY udfclient_deps_packages.yaml /build_info/packages/udfclient_deps_packages.yaml -RUN exaslpm install --package-file /build_info/packages/udfclient_deps_packages.yaml --build-step udfclient_deps +COPY udfclient_deps_packages.yml /build_info/packages/udfclient_deps_packages.yml +RUN exaslpm install --package-file /build_info/packages/udfclient_deps_packages.yml --build-step udfclient_deps diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile index 8f4015cea..ab40b150d 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_customization/Dockerfile @@ -16,8 +16,8 @@ FROM {{flavor_base_deps}} RUN mkdir -p /build_info/packages/flavor_customization -COPY flavor_customization_packages.yaml /build_info/packages/flavor_customization_packages.yaml -RUN exaslpm install --package-file /build_info/packages/flavor_customization_packages.yaml --build-step flavor_customization +COPY flavor_customization_packages.yml /build_info/packages/flavor_customization_packages.yml +RUN exaslpm install --package-file /build_info/packages/flavor_customization_packages.yml --build-step flavor_customization ########################################################################## From cdd13029863d82fc4ae4819634c5e5be3f4e2245 Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Thu, 12 Mar 2026 14:47:16 -0300 Subject: [PATCH 7/8] Removed unnecessary copy of scripts and updated exaslpm docker image version --- .../flavor_base/conda_deps/Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index d6632b827..658e2b1b3 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -1,11 +1,9 @@ -FROM exasol/script-language-container:exaslpm-1.0.0-ubuntu-22.04 +FROM exasol/script-language-container:exaslpm-1.1.0-ubuntu-22.04 ENV DEBIAN_FRONTEND=noninteractive COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc -COPY scripts /scripts - RUN mkdir -p /build_info/packages COPY conda_deps_packages.yml /build_info/packages/conda_deps_packages.yml RUN exaslpm install --package-file /build_info/packages/conda_deps_packages.yml --build-step conda_deps From 7bc8eebfd89ecf79c55b9d2879f65f1540b3b6dd Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:00:58 -0300 Subject: [PATCH 8/8] Re-added copy of scripts --- .../flavor_base/conda_deps/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile index 658e2b1b3..32a950b82 100644 --- a/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile +++ b/flavors/template-Exasol-all-python-3.10-conda/flavor_base/conda_deps/Dockerfile @@ -4,6 +4,8 @@ ENV DEBIAN_FRONTEND=noninteractive COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc +COPY scripts /scripts + RUN mkdir -p /build_info/packages COPY conda_deps_packages.yml /build_info/packages/conda_deps_packages.yml RUN exaslpm install --package-file /build_info/packages/conda_deps_packages.yml --build-step conda_deps