Repository navigation
Expand file tree
/
Copy pathDockerfile.ubi9
More file actions
64 lines (50 loc) · 2.01 KB
/
Copy pathDockerfile.ubi9
File metadata and controls
64 lines (50 loc) · 2.01 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
ARG baseImage
FROM ${baseImage} as build
ENV PYTHON_VERSION 3.13
ENV PYTHON_PATCH_VERSION 8
ENV ARCH amd64
ENV PYTHON_DIR=/opt/python
ENV PATH ${PYTHON_DIR}/bin:$PATH
ENV LANG C.UTF-8
WORKDIR ${HOME}
microdnf install -y --setopt=tsflags=nodocs gcc openssl-devel bzip2-devel libffi-devel expat-devel make wget tar gzip zlib-devel sqlite-devel ncurses-devel xz xz-devel \
&& wget https://www.python.org/ftp/python/${PYTHON_VERSION}.${PYTHON_PATCH_VERSION}/Python-${PYTHON_VERSION}.${PYTHON_PATCH_VERSION}.tgz \
&& tar xzf Python-${PYTHON_VERSION}.${PYTHON_PATCH_VERSION}.tgz \
&& cd Python-${PYTHON_VERSION}.${PYTHON_PATCH_VERSION} \
&& ./configure --prefix=${PYTHON_DIR} \
&& ./configure --prefix=${PYTHON_DIR} \
--build="$ARCH" \
--enable-loadable-sqlite-extensions \
--enable-shared \
--with-system-expat \
&& make -j"$(nproc)" \
&& make install \
&& ldconfig ${PYTHON_DIR}/lib \
&& find ${PYTHON_DIR} -depth \
\( \
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
-o \
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
\) -exec rm -rf '{}' +
FROM ${baseImage} as runtime
ENV PYTHON_DIR=/opt/python
ENV PATH ${PYTHON_DIR}/bin:$PATH
ENV LANG C.UTF-8
ENV PYTHON_VERSION 3.13
ENV PYTHON_PATCH_VERSION 8
RUN INSTALL_PKGS="expat" && \
microdnf -y --setopt=tsflags=nodocs install $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
microdnf -y clean all --enablerepo='*'
COPY --from=build ${PYTHON_DIR} ${PYTHON_DIR}
ENV LD_LIBRARY_PATH ${PYTHON_DIR}/lib:{LD_LIBRARY_PATH}
RUN ldconfig ${PYTHON_DIR}/lib
# - In order to drop the root user, we have to make some directories world
# writable as OpenShift default security model is to run the container
# under random UID.
RUN chown -R ${USER}:0 ${APP_ROOT} && \
chmod +x /usr/bin/fix-permissions && \
fix-permissions ${APP_ROOT} -P && \
rpm-file-permissions
ENV PYTHONPATH=${PYTHON_DIR}/lib/python3.13/site-packages
USER ${USER}