@@ -3,22 +3,40 @@ FROM redhat/ubi8 as builder
33# Install dependencies including gcc-toolset-14
44RUN yum update -y && \
55 yum install -y wget autoconf automake python3.11 python3.11-pip \
6- libtool git make openssl3 -devel libstdc++-static diffutils gcc-toolset-14 cmake && \
6+ libtool git make perl-core zlib -devel libstdc++-static diffutils gcc-toolset-14 cmake && \
77 alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
88 alternatives --auto python3 && \
99 yum clean all
1010
11- # Use OpenSSL 3 for builds
12- ENV PKG_CONFIG_PATH="/usr/lib64/pkgconfig:${PKG_CONFIG_PATH}"
13- ENV OPENSSL_ROOT_DIR="/usr"
14- ENV OPENSSL_INCLUDE_DIR="/usr/include/openssl3"
15- ENV OPENSSL_CRYPTO_LIBRARY="/usr/lib64/libcrypto.so.3"
16- ENV OPENSSL_SSL_LIBRARY="/usr/lib64/libssl.so.3"
17-
1811# Enable gcc-toolset-14
1912ENV PATH="/opt/rh/gcc-toolset-14/root/usr/bin:${PATH}"
2013ENV LD_LIBRARY_PATH="/opt/rh/gcc-toolset-14/root/usr/lib64:${LD_LIBRARY_PATH}"
2114
15+ # Build and install OpenSSL 3 from source (not available as a package in UBI8)
16+ ARG OPENSSL_VERSION=3.0.15
17+ ARG OPENSSL_SHA256=23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533
18+ RUN set -eux; \
19+ wget -O openssl.tar.gz "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz"; \
20+ echo "${OPENSSL_SHA256} openssl.tar.gz" | sha256sum -c -; \
21+ tar -xzf openssl.tar.gz; \
22+ cd "openssl-${OPENSSL_VERSION}"; \
23+ ./Configure --prefix=/usr/local/openssl3 --openssldir=/usr/local/openssl3/ssl --libdir=lib64 shared zlib; \
24+ make -j$(nproc); \
25+ make install_sw install_ssldirs; \
26+ echo "/usr/local/openssl3/lib64" > /etc/ld.so.conf.d/openssl3.conf; \
27+ ldconfig; \
28+ cd ..; \
29+ rm -rf "openssl-${OPENSSL_VERSION}" openssl.tar.gz
30+
31+ # Set OpenSSL 3 environment variables for cmake and pkg-config discovery
32+ ENV OPENSSL_ROOT_DIR="/usr/local/openssl3"
33+ ENV OPENSSL_INCLUDE_DIR="/usr/local/openssl3/include"
34+ ENV OPENSSL_CRYPTO_LIBRARY="/usr/local/openssl3/lib64/libcrypto.so"
35+ ENV OPENSSL_SSL_LIBRARY="/usr/local/openssl3/lib64/libssl.so"
36+ ENV PKG_CONFIG_PATH="/usr/local/openssl3/lib64/pkgconfig:${PKG_CONFIG_PATH}"
37+ ENV PATH="/usr/local/openssl3/bin:${PATH}"
38+ ENV LD_LIBRARY_PATH="/usr/local/openssl3/lib64:${LD_LIBRARY_PATH}"
39+
2240# Install Rust
2341RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
2442ENV PATH="/root/.cargo/bin:${PATH}"
0 commit comments