diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile deleted file mode 100644 index a640cae9..00000000 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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.11.0-openjdk-amd64" >> /env diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..f3ca0ef1 --- /dev/null +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/packages/apt_get_packages index a5f0eb67..153ded7d 100644 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/build_deps/packages/apt_get_packages @@ -2,9 +2,10 @@ coreutils|8.32-4.1ubuntu1.2 locales|2.35-0ubuntu3.10 tar|1.34+dfsg-1ubuntu0.1.22.04.2 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 build-essential|12.9ubuntu3 libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 python3|3.10.6-1~22.04.1 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/Dockerfile index 7502356a..7e8d2c38 100644 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/Dockerfile @@ -4,5 +4,26 @@ 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-11-openjdk-amd64 +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env + +# Optional: make it available in all shells +RUN cat /env >> /etc/environment diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/packages/apt_get_packages index c918931d..019148f9 100644 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/language_deps/packages/apt_get_packages @@ -1,3 +1,3 @@ ca-certificates|20240203~22.04.1 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile deleted file mode 100644 index 4e9e8c7b..00000000 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -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 udfclient_deps/packages /build_info/packages/udfclient_deps -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/udfclient_deps/apt_get_packages --with-versions - -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" - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -ENV PROTOBUF_LIBRARY_PREFIX=/usr/lib/ -ENV PROTOBUF_INCLUDE_PREFIX=/usr/include/ -ENV ZMQ_LIBRARY_PREFIX=/usr/lib -ENV ZMQ_INCLUDE_PREFIX=/usr/include -ENV OPENSSL_LIBRARY_PREFIX=/usr/lib/x86_64-linux-gnu -ENV OPENSSL_INCLUDE_PREFIX=/usr/include/openssl diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile new file mode 120000 index 00000000..cc2c7b00 --- /dev/null +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-udfclient_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-java-11/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile deleted file mode 100644 index ebd01539..00000000 --- a/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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 diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..630b3c95 --- /dev/null +++ b/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps-java17 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/packages/apt_get_packages index 730fe98a..079d8280 100644 --- a/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-java-17/flavor_base/build_deps/packages/apt_get_packages @@ -8,3 +8,4 @@ libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 python3|3.10.6-1~22.04.1 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-all-java-17/flavor_base/language_deps/Dockerfile index 9eb11e54..892d0d02 100644 --- a/flavors/standard-EXASOL-all-java-17/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-all-java-17/flavor_base/language_deps/Dockerfile @@ -4,4 +4,26 @@ 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 +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-17-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-17-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env + +# Optional: make it available in all shells +RUN cat /env >> /etc/environment + diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile deleted file mode 100644 index 4e9e8c7b..00000000 --- a/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -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 udfclient_deps/packages /build_info/packages/udfclient_deps -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/udfclient_deps/apt_get_packages --with-versions - -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" - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -ENV PROTOBUF_LIBRARY_PREFIX=/usr/lib/ -ENV PROTOBUF_INCLUDE_PREFIX=/usr/include/ -ENV ZMQ_LIBRARY_PREFIX=/usr/lib -ENV ZMQ_INCLUDE_PREFIX=/usr/include -ENV OPENSSL_LIBRARY_PREFIX=/usr/lib/x86_64-linux-gnu -ENV OPENSSL_INCLUDE_PREFIX=/usr/include/openssl diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile new file mode 120000 index 00000000..cc2c7b00 --- /dev/null +++ b/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-udfclient_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-java-17/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile deleted file mode 100644 index a640cae9..00000000 --- a/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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.11.0-openjdk-amd64" >> /env diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..f3ca0ef1 --- /dev/null +++ b/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/packages/apt_get_packages index e618a00a..67caeb4e 100644 --- a/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-python-3.10/flavor_base/build_deps/packages/apt_get_packages @@ -2,8 +2,9 @@ coreutils|8.32-4.1ubuntu1.2 locales|2.35-0ubuntu3.10 tar|1.34+dfsg-1ubuntu0.1.22.04.2 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 build-essential|12.9ubuntu3 libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/flavor_base_deps/packages/python3_pip_packages b/flavors/standard-EXASOL-all-python-3.10/flavor_base/flavor_base_deps/packages/python3_pip_packages index 446ff099..4a55343d 100644 --- a/flavors/standard-EXASOL-all-python-3.10/flavor_base/flavor_base_deps/packages/python3_pip_packages +++ b/flavors/standard-EXASOL-all-python-3.10/flavor_base/flavor_base_deps/packages/python3_pip_packages @@ -65,11 +65,11 @@ pybase64|1.3.2 pysimdjson|6.0.2 numba|0.59.1 bitarray|2.9.2 -pybloomfiltermmap3|0.5.7 +bloom-filter2|2.0.0 bitsets|0.8.4 pyyaml|6.0.1 exasol-bucketfs|2.0.0 -pysmbc|1.0.25.1 +# pysmbc|1.0.25.1 cryptography|42.0.6 h2|4.1.0 cython|3.0.10 diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-all-python-3.10/flavor_base/language_deps/Dockerfile index c1f8a31e..9971b107 100644 --- a/flavors/standard-EXASOL-all-python-3.10/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-all-python-3.10/flavor_base/language_deps/Dockerfile @@ -11,5 +11,25 @@ RUN /scripts/install_scripts/install_via_pip.pl --file /build_info/packages/lang ENV PYTHON3_PREFIX /usr ENV PYTHON3_VERSION python3.10 -ENV JAVA_PREFIX /usr/lib/jvm/java-11-openjdk-amd64 +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env +# Optional: make it available in all shells +RUN cat /env >> /etc/environment \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-python-3.10/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-python-3.10/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/standard-EXASOL-all-python-3.10/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-python-3.10/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile deleted file mode 100644 index a640cae9..00000000 --- a/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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.11.0-openjdk-amd64" >> /env diff --git a/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..f3ca0ef1 --- /dev/null +++ b/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/packages/apt_get_packages index a5f0eb67..153ded7d 100644 --- a/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-r-4.4/flavor_base/build_deps/packages/apt_get_packages @@ -2,9 +2,10 @@ coreutils|8.32-4.1ubuntu1.2 locales|2.35-0ubuntu3.10 tar|1.34+dfsg-1ubuntu0.1.22.04.2 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 build-essential|12.9ubuntu3 libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 python3|3.10.6-1~22.04.1 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all-r-4.4/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all-r-4.4/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/standard-EXASOL-all-r-4.4/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all-r-4.4/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile deleted file mode 100644 index a640cae9..00000000 --- a/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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.11.0-openjdk-amd64" >> /env diff --git a/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile b/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..f3ca0ef1 --- /dev/null +++ b/flavors/standard-EXASOL-all/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all/flavor_base/build_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all/flavor_base/build_deps/packages/apt_get_packages index e618a00a..67caeb4e 100644 --- a/flavors/standard-EXASOL-all/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all/flavor_base/build_deps/packages/apt_get_packages @@ -2,8 +2,9 @@ coreutils|8.32-4.1ubuntu1.2 locales|2.35-0ubuntu3.10 tar|1.34+dfsg-1ubuntu0.1.22.04.2 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 build-essential|12.9ubuntu3 libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/standard-EXASOL-all/flavor_base/language_deps/Dockerfile b/flavors/standard-EXASOL-all/flavor_base/language_deps/Dockerfile index 314f68fd..7d8bba72 100644 --- a/flavors/standard-EXASOL-all/flavor_base/language_deps/Dockerfile +++ b/flavors/standard-EXASOL-all/flavor_base/language_deps/Dockerfile @@ -15,5 +15,27 @@ RUN /scripts/install_scripts/install_via_pip.pl --file /build_info/packages/lang ENV PYTHON3_PREFIX /usr ENV PYTHON3_VERSION python3.10 -ENV JAVA_PREFIX /usr/lib/jvm/java-11-openjdk-amd64 + +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env + +# Optional: make it available in all shells +RUN cat /env >> /etc/environment diff --git a/flavors/standard-EXASOL-all/flavor_base/language_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all/flavor_base/language_deps/packages/apt_get_packages index f1b60dde..536ff942 100644 --- a/flavors/standard-EXASOL-all/flavor_base/language_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all/flavor_base/language_deps/packages/apt_get_packages @@ -2,5 +2,5 @@ ca-certificates|20240203~22.04.1 python3.10-dev|3.10.12-1~22.04.10 python3-distutils|3.10.8-1~22.04 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 chrpath|0.16-2 diff --git a/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile deleted file mode 100644 index 4e9e8c7b..00000000 --- a/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -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 udfclient_deps/packages /build_info/packages/udfclient_deps -RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/udfclient_deps/apt_get_packages --with-versions - -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" - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 - -ENV PROTOBUF_LIBRARY_PREFIX=/usr/lib/ -ENV PROTOBUF_INCLUDE_PREFIX=/usr/include/ -ENV ZMQ_LIBRARY_PREFIX=/usr/lib -ENV ZMQ_INCLUDE_PREFIX=/usr/include -ENV OPENSSL_LIBRARY_PREFIX=/usr/lib/x86_64-linux-gnu -ENV OPENSSL_INCLUDE_PREFIX=/usr/include/openssl diff --git a/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile b/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile new file mode 120000 index 00000000..cc2c7b00 --- /dev/null +++ b/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-udfclient_deps \ No newline at end of file diff --git a/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/standard-EXASOL-all/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile b/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile deleted file mode 100644 index a640cae9..00000000 --- a/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -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.11.0-openjdk-amd64" >> /env diff --git a/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile b/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile new file mode 120000 index 00000000..f3ca0ef1 --- /dev/null +++ b/flavors/template-Exasol-all-r-4/flavor_base/build_deps/Dockerfile @@ -0,0 +1 @@ +../../../../shared/Dockerfile-build_deps \ No newline at end of file diff --git a/flavors/template-Exasol-all-r-4/flavor_base/build_deps/packages/apt_get_packages b/flavors/template-Exasol-all-r-4/flavor_base/build_deps/packages/apt_get_packages index a5f0eb67..9978ddbe 100644 --- a/flavors/template-Exasol-all-r-4/flavor_base/build_deps/packages/apt_get_packages +++ b/flavors/template-Exasol-all-r-4/flavor_base/build_deps/packages/apt_get_packages @@ -2,9 +2,10 @@ coreutils|8.32-4.1ubuntu1.2 locales|2.35-0ubuntu3.10 tar|1.34+dfsg-1ubuntu0.1.22.04.2 curl|7.81.0-1ubuntu1.20 -openjdk-11-jdk-headless|11.0.27+6~us1-0ubuntu1~22.04 +openjdk-11-jdk-headless|11.0.28+6-1ubuntu1~22.04.1 build-essential|12.9ubuntu3 libpcre3-dev|2:8.39-13ubuntu0.22.04.1 protobuf-compiler|3.12.4-1ubuntu7.22.04.4 chrpath|0.16-2 python3|3.10.6-1~22.04.1 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/flavors/template-Exasol-all-r-4/flavor_base/udfclient_deps/packages/apt_get_packages b/flavors/template-Exasol-all-r-4/flavor_base/udfclient_deps/packages/apt_get_packages index afca04e7..cde95286 100644 --- a/flavors/template-Exasol-all-r-4/flavor_base/udfclient_deps/packages/apt_get_packages +++ b/flavors/template-Exasol-all-r-4/flavor_base/udfclient_deps/packages/apt_get_packages @@ -4,3 +4,4 @@ libnss-db|2.2.3pre1-6ubuntu3 libzmq3-dev|4.3.4-2 libprotobuf-dev|3.12.4-1ubuntu7.22.04.4 libssl-dev|3.0.2-0ubuntu1.19 +libleveldb-dev|1.23-3build1 \ No newline at end of file diff --git a/script-languages b/script-languages index fbdf35cd..7ddf1730 160000 --- a/script-languages +++ b/script-languages @@ -1 +1 @@ -Subproject commit fbdf35cd1af5a882b6bf59da6c64c9643c949a03 +Subproject commit 7ddf1730238976d8c29588eeb0d96287a906e143 diff --git a/shared/Dockerfile-build_deps b/shared/Dockerfile-build_deps new file mode 100644 index 00000000..8d183b2c --- /dev/null +++ b/shared/Dockerfile-build_deps @@ -0,0 +1,65 @@ +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 + +# Install base dependencies +RUN /scripts/install_scripts/install_via_apt.pl \ + --file /build_info/packages/build_deps/apt_get_packages --with-versions + +# Install Bazelisk (architecture-dependent) +ENV BAZELISK_VERSION="v1.26.0" +ENV USE_BAZEL_VERSION="7.6.1" + +RUN set -e; \ + apt-get update && apt-get install -y curl gnupg; \ + ARCH=$(dpkg --print-architecture); \ + if [ "$ARCH" = "amd64" ]; then \ + BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-linux-amd64"; \ + elif [ "$ARCH" = "arm64" ]; then \ + BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-linux-arm64"; \ + else \ + echo "Unsupported architecture: $ARCH" >&2; exit 1; \ + fi; \ + curl -fsSL -o /usr/local/bin/bazel "$BAZELISK_URL"; \ + chmod +x /usr/local/bin/bazel; + +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env && \ + echo "export PROTOBUF_BIN=/usr/bin/protoc" >> /env && \ + echo "export USE_BAZEL_VERSION=$USE_BAZEL_VERSION" >> /env + + +# Install SWIG 2.0.4 +RUN curl -fsSL -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 --build=$(arch)-unknown-linux-gnu --prefix=/usr && make -j"$(nproc)" && make install) && \ + rm -rf swig-2.0.4 swig-2.0.4.tar.gz + +# Configure UTF-8 locale +RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 && ldconfig diff --git a/shared/Dockerfile-build_deps-java17 b/shared/Dockerfile-build_deps-java17 new file mode 100644 index 00000000..db986602 --- /dev/null +++ b/shared/Dockerfile-build_deps-java17 @@ -0,0 +1,66 @@ +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 + +# Install base dependencies +RUN /scripts/install_scripts/install_via_apt.pl \ + --file /build_info/packages/build_deps/apt_get_packages --with-versions + +# Install Bazelisk (architecture-dependent) +ENV BAZELISK_VERSION="v1.26.0" +ENV USE_BAZEL_VERSION="7.6.1" + +RUN set -e; \ + apt-get update && apt-get install -y curl gnupg; \ + ARCH=$(dpkg --print-architecture); \ + if [ "$ARCH" = "amd64" ]; then \ + BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-linux-amd64"; \ + JAVA_HOME_PATH="/usr/lib/jvm/java-1.17.0-openjdk-amd64"; \ + elif [ "$ARCH" = "arm64" ]; then \ + BAZELISK_URL="https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-linux-arm64"; \ + JAVA_HOME_PATH="/usr/lib/jvm/java-1.17.0-openjdk-arm64"; \ + else \ + echo "Unsupported architecture: $ARCH" >&2; exit 1; \ + fi; \ + curl -fsSL -o /usr/local/bin/bazel "$BAZELISK_URL"; \ + chmod +x /usr/local/bin/bazel; + +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-17-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-17-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env && \ + echo "export PROTOBUF_BIN=/usr/bin/protoc" >> /env && \ + echo "export USE_BAZEL_VERSION=$USE_BAZEL_VERSION" >> /env + +# Install SWIG 2.0.4 +RUN curl -fsSL -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 --build=$(arch)-unknown-linux-gnu --prefix=/usr && make -j"$(nproc)" && make install) && \ + rm -rf swig-2.0.4 swig-2.0.4.tar.gz + +# Configure UTF-8 locale +RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 && ldconfig diff --git a/shared/Dockerfile-udfclient_deps b/shared/Dockerfile-udfclient_deps new file mode 100644 index 00000000..c2053119 --- /dev/null +++ b/shared/Dockerfile-udfclient_deps @@ -0,0 +1,50 @@ +FROM ubuntu:22.04 +ENV DEBIAN_FRONTEND=noninteractive + +# Optional: override Ubuntu mirror +ENV ARCHIVE_UBUNTU_PREFIX="" +RUN sed --in-place --regexp-extended "s|(//)(archive\.ubuntu)|\1$ARCHIVE_UBUNTU_PREFIX\2|" /etc/apt/sources.list + +# Reduce image size by skipping documentation +COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc +COPY scripts /scripts + +# Install dependencies +RUN mkdir -p /build_info/packages +COPY udfclient_deps/packages /build_info/packages/udfclient_deps +RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/udfclient_deps/apt_get_packages --with-versions + +# Create users and groups +RUN set -e; \ + addgroup --gid 1000 exasolution; \ + adduser --disabled-login --uid 1000 --gid 1000 exasolution --gecos ""; \ + addgroup --gid 500 exausers; \ + adduser --disabled-login --uid 500 --gid 500 exadefusr --gecos "" + +# UTF-8 locale environment +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +# Determine architecture and write relevant env vars to /env +RUN ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-amd64"; \ + OPENSSL_LIB="/usr/lib/x86_64-linux-gnu"; \ + elif [ "$ARCH" = "arm64" ]; then \ + JAVA_PREFIX="/usr/lib/jvm/java-11-openjdk-arm64"; \ + OPENSSL_LIB="/usr/lib/aarch64-linux-gnu"; \ + else \ + echo "Unsupported architecture: $ARCH" && exit 1; \ + fi && \ + echo "export JAVA_PREFIX=$JAVA_PREFIX" >> /env && \ + echo "export ARCH=$ARCH" >> /env && \ + echo "export PROTOBUF_LIBRARY_PREFIX=/usr/lib/" >> /env && \ + echo "export PROTOBUF_INCLUDE_PREFIX=/usr/include/" >> /env && \ + echo "export ZMQ_LIBRARY_PREFIX=/usr/lib" >> /env && \ + echo "export ZMQ_INCLUDE_PREFIX=/usr/include" >> /env && \ + echo "export OPENSSL_LIBRARY_PREFIX=$OPENSSL_LIB" >> /env && \ + echo "export OPENSSL_INCLUDE_PREFIX=/usr/include/openssl" >> /env + +# Optional: make it available in all shells +RUN cat /env >> /etc/environment \ No newline at end of file