-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDockerfile.rhel8
More file actions
66 lines (57 loc) · 2.65 KB
/
Dockerfile.rhel8
File metadata and controls
66 lines (57 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
FROM redhat/ubi8 as builder
# Install dependencies including gcc-toolset-14
RUN yum update -y && \
yum install -y wget autoconf automake python3.11 python3.11-pip \
libtool git make perl-core zlib-devel libstdc++-static diffutils gcc-toolset-14 cmake && \
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
alternatives --auto python3 && \
yum clean all
# Enable gcc-toolset-14
ENV PATH="/opt/rh/gcc-toolset-14/root/usr/bin:${PATH}"
ENV LD_LIBRARY_PATH="/opt/rh/gcc-toolset-14/root/usr/lib64:${LD_LIBRARY_PATH}"
# Build and install OpenSSL 3 from source (not available as a package in UBI8)
ARG OPENSSL_VERSION=3.0.15
ARG OPENSSL_SHA256=23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533
RUN set -eux; \
wget -O openssl.tar.gz "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz"; \
echo "${OPENSSL_SHA256} openssl.tar.gz" | sha256sum -c -; \
tar -xzf openssl.tar.gz; \
cd "openssl-${OPENSSL_VERSION}"; \
./Configure --prefix=/usr/local/openssl3 --openssldir=/usr/local/openssl3/ssl --libdir=lib64 shared zlib; \
make -j$(nproc); \
make install_sw install_ssldirs; \
echo "/usr/local/openssl3/lib64" > /etc/ld.so.conf.d/openssl3.conf; \
ldconfig; \
cd ..; \
rm -rf "openssl-${OPENSSL_VERSION}" openssl.tar.gz
# Set OpenSSL 3 environment variables for cmake and pkg-config discovery
ENV OPENSSL_ROOT_DIR="/usr/local/openssl3"
ENV OPENSSL_INCLUDE_DIR="/usr/local/openssl3/include"
ENV OPENSSL_CRYPTO_LIBRARY="/usr/local/openssl3/lib64/libcrypto.so"
ENV OPENSSL_SSL_LIBRARY="/usr/local/openssl3/lib64/libssl.so"
ENV PKG_CONFIG_PATH="/usr/local/openssl3/lib64/pkgconfig:${PKG_CONFIG_PATH}"
ENV PATH="/usr/local/openssl3/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/openssl3/lib64:${LD_LIBRARY_PATH}"
# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
# Install PEG
ARG PEG_VERSION=0.1.19
ARG PEG_SHA256=74d1b7b905dbbc1776502a4ccf9c38ad8b86c9f8e51b825214783eefd5cdc9af
RUN set -eux; \
url="https://github.com/gpakosz/peg/archive/refs/tags/${PEG_VERSION}.tar.gz"; \
wget -O peg.tar.gz "$url"; \
echo "${PEG_SHA256} peg.tar.gz" | sha256sum -c -; \
tar -xzf peg.tar.gz; \
cd "peg-${PEG_VERSION}"; \
make && make install; \
cd ..; \
rm -rf "peg-${PEG_VERSION}" peg.tar.gz
# # Install Redis
# RUN wget https://download.redis.io/redis-stable.tar.gz && \
# tar -xzvf redis-stable.tar.gz && \
# cd redis-stable && \
# make && make install && \
# cd .. && rm -rf redis-stable*
# Default shell
CMD ["/bin/bash"]