openssl update

This commit is contained in:
STAM 2025-02-14 20:54:24 +03:00
parent 0ace6e3dfa
commit 4fc710aec4
Signed by: stam
GPG Key ID: E149C3760CFA3C7E
24 changed files with 700 additions and 61 deletions

View File

@ -3,6 +3,8 @@
* `feb`
* added `zabbix` images with `7.2` version
* added `OpenSSL` version `3.4.x`
* updated `OpenSSL` versions.
* created draft `python` base images based on `debian 12`.
* `jan`
* updated `atlassian` images
* updated some deps in images:

View File

@ -186,8 +186,8 @@ ARG OPENSSL_111_DOWNLOAD_URL=https://www.openssl.org/source/old/${OPENSSL_111_VE
ARG OPENSSL_111_TEMP=/tmp/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP_SRC=/tmp/openssl-${OPENSSL_111_VERSION}w
# OpenSSL 3.0.15
ENV OPENSSL_30_VERSION=3.0.15
# OpenSSL 3.0
ENV OPENSSL_30_VERSION=3.0.16
ENV OPENSSL_30_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_30_VERSION}
ENV OPENSSL_30_BIN_DIR=${OPENSSL_30_DIR}/bin
ENV OPENSSL_30_INC_DIR=${OPENSSL_30_DIR}/include
@ -197,8 +197,8 @@ ARG OPENSSL_30_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_30_
ARG OPENSSL_30_TEMP=/tmp/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP_SRC=/tmp/openssl-${OPENSSL_30_VERSION}
# OpenSSL 3.1.7
ENV OPENSSL_31_VERSION=3.1.7
# OpenSSL 3.1
ENV OPENSSL_31_VERSION=3.1.8
ENV OPENSSL_31_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_31_VERSION}
ENV OPENSSL_31_BIN_DIR=${OPENSSL_31_DIR}/bin
ENV OPENSSL_31_INC_DIR=${OPENSSL_31_DIR}/include
@ -208,8 +208,8 @@ ARG OPENSSL_31_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_31_
ARG OPENSSL_31_TEMP=/tmp/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP_SRC=/tmp/openssl-${OPENSSL_31_VERSION}
# OpenSSL 3.2.3
ENV OPENSSL_32_VERSION=3.2.3
# OpenSSL 3.2
ENV OPENSSL_32_VERSION=3.2.4
ENV OPENSSL_32_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_32_VERSION}
ENV OPENSSL_32_BIN_DIR=${OPENSSL_32_DIR}/bin
ENV OPENSSL_32_INC_DIR=${OPENSSL_32_DIR}/include
@ -219,8 +219,8 @@ ARG OPENSSL_32_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_32_
ARG OPENSSL_32_TEMP=/tmp/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP_SRC=/tmp/openssl-${OPENSSL_32_VERSION}
# OpenSSL 3.3.2
ENV OPENSSL_33_VERSION=3.3.2
# OpenSSL 3.3
ENV OPENSSL_33_VERSION=3.3.3
ENV OPENSSL_33_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_33_VERSION}
ENV OPENSSL_33_BIN_DIR=${OPENSSL_33_DIR}/bin
ENV OPENSSL_33_INC_DIR=${OPENSSL_33_DIR}/include
@ -230,8 +230,8 @@ ARG OPENSSL_33_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_33_
ARG OPENSSL_33_TEMP=/tmp/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP_SRC=/tmp/openssl-${OPENSSL_33_VERSION}
# OpenSSL 3.4.0
ENV OPENSSL_34_VERSION=3.4.0
# OpenSSL 3.4
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include

View File

@ -186,8 +186,8 @@ ARG OPENSSL_111_DOWNLOAD_URL=https://www.openssl.org/source/old/${OPENSSL_111_VE
ARG OPENSSL_111_TEMP=/tmp/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP_SRC=/tmp/openssl-${OPENSSL_111_VERSION}w
# OpenSSL 3.0.15
ENV OPENSSL_30_VERSION=3.0.15
# OpenSSL 3.0
ENV OPENSSL_30_VERSION=3.0.16
ENV OPENSSL_30_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_30_VERSION}
ENV OPENSSL_30_BIN_DIR=${OPENSSL_30_DIR}/bin
ENV OPENSSL_30_INC_DIR=${OPENSSL_30_DIR}/include
@ -197,8 +197,8 @@ ARG OPENSSL_30_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_30_
ARG OPENSSL_30_TEMP=/tmp/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP_SRC=/tmp/openssl-${OPENSSL_30_VERSION}
# OpenSSL 3.1.7
ENV OPENSSL_31_VERSION=3.1.7
# OpenSSL 3.1
ENV OPENSSL_31_VERSION=3.1.8
ENV OPENSSL_31_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_31_VERSION}
ENV OPENSSL_31_BIN_DIR=${OPENSSL_31_DIR}/bin
ENV OPENSSL_31_INC_DIR=${OPENSSL_31_DIR}/include
@ -208,8 +208,8 @@ ARG OPENSSL_31_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_31_
ARG OPENSSL_31_TEMP=/tmp/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP_SRC=/tmp/openssl-${OPENSSL_31_VERSION}
# OpenSSL 3.2.3
ENV OPENSSL_32_VERSION=3.2.3
# OpenSSL 3.2
ENV OPENSSL_32_VERSION=3.2.4
ENV OPENSSL_32_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_32_VERSION}
ENV OPENSSL_32_BIN_DIR=${OPENSSL_32_DIR}/bin
ENV OPENSSL_32_INC_DIR=${OPENSSL_32_DIR}/include
@ -219,8 +219,8 @@ ARG OPENSSL_32_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_32_
ARG OPENSSL_32_TEMP=/tmp/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP_SRC=/tmp/openssl-${OPENSSL_32_VERSION}
# OpenSSL 3.3.2
ENV OPENSSL_33_VERSION=3.3.2
# OpenSSL 3.3
ENV OPENSSL_33_VERSION=3.3.3
ENV OPENSSL_33_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_33_VERSION}
ENV OPENSSL_33_BIN_DIR=${OPENSSL_33_DIR}/bin
ENV OPENSSL_33_INC_DIR=${OPENSSL_33_DIR}/include
@ -230,8 +230,8 @@ ARG OPENSSL_33_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_33_
ARG OPENSSL_33_TEMP=/tmp/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP_SRC=/tmp/openssl-${OPENSSL_33_VERSION}
# OpenSSL 3.4.0
ENV OPENSSL_34_VERSION=3.4.0
# OpenSSL 3.4
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include

View File

@ -0,0 +1,152 @@
FROM epicmorg/debian:bookworm-develop as builder
RUN apt update && apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libdb5.3-dev \
libbz2-dev \
libexpat1-dev \
liblzma-dev \
libffi-dev \
uuid-dev \
tk-dev
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
# python 3.10
ENV PYTHON_VERSION=3.10
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.16
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
ARG PYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python/${PYTHON_FULL_VERSION}/Python-${PYTHON_FULL_VERSION}.tgz
ARG PYTHON_TEMP=/tmp/Python-${PYTHON_FULL_VERSION}.tgz
##################################################################
# CMake
##################################################################
RUN mkdir -p ${PYTHON_DIR} ${PYTHON_SRC_DIR} ${PYTHON_BIN_DIR}
ADD ${PYTHON_DOWNLOAD_URL} /tmp
RUN tar -xvzf ${PYTHON_TEMP} --strip-components=1 --directory ${PYTHON_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${PYTHON_BIN_DIR}:${PATH}"
WORKDIR ${PYTHON_SRC_DIR}
RUN ./configure \
--prefix=${PYTHON_DIR} \
--enable-optimizations \
--enable-option-checking=fatal \
--with-lto \
--enable-loadable-sqlite-extensions \
--with-ensurepip=install \
--enable-profiling \
--with-system-expat \
--enable-option-checking=fatal \
--with-computed-gotos \
--with-pydebug \
--with-trace-refs \
--with-assertions \
--with-valgrind \
--with-static-libpython \
--with-openssl-rpath=auto \
--with-openssl=${OPENSSL_34_DIR} \
LDFLAGS="-Wl,-rpath,${OPENSSL_34_DIR}/lib64" \
CPPFLAGS="-I${OPENSSL_34_DIR}/include"
RUN make -j$(nproc) && \
make altinstall
RUN python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)"
##################################################################
##################################################################
##################################################################
# Final Layer
##################################################################
##################################################################
##################################################################
FROM epicmorg/debian:bookworm
RUN apt-get remove -y python3-pip
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
##################################################################
# OpenSSL 3.4
##################################################################
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
##################################################################
# Python 3.10
##################################################################
ENV PYTHON_VERSION=3.10
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.16
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
COPY etc/apt/preferences.d /etc/apt/preferences.d
COPY --from=builder ${PYTHON_DIR} ${PYTHON_DIR}
COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${OPENSSL_34_BIN_DIR}:${PYTHON_BIN_DIR}:${PATH}"
RUN mv ${PYTHON_SRC_DIR} /usr/local/src/${PYTHON_FULL_VERSION} && \
ln -sfv /usr/local/src/${PYTHON_FULL_VERSION} ${PYTHON_SRC_DIR} && \
rm -rfv /usr/bin/pip3 && \
rm -rfv /usr/bin/pip && \
rm -rfv /usr/bin/python && \
rm -rfv /usr/bin/python3 && \
update-alternatives --install /usr/bin/pip3 pip3 ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/pip pip ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python python ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python3 python3 ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
echo "# OpenSSL support" >> ${LD_CONF_DIR}/OpenSSL.conf && \
echo ${OPENSSL_34_LIB_DIR} >> ${LD_CONF_DIR}/OpenSSL.conf && \
ldconfig
RUN echo "=============================================" && \
python${PYTHON_VERSION} --version && \
python3 --version && \
python --version && \
pip3 --version && \
pip --version && \
echo "=============================================" && \
python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)" && \
echo "============================================="
WORKDIR ${EMG_LOCAL_BASE_DIR}
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
RUN updatedb

View File

@ -0,0 +1,36 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
kaniko-wrapper --version
dry:
make dry-run
test:
make dry-run
dry-run:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
build-compose:
docker-compose build --compress --parallel --progress plain
deploy:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af

View File

@ -0,0 +1,6 @@
#version: '3'
services:
app:
image: "epicmorg/debian:bookworm-python-3.10"
build:
context: .

View File

@ -0,0 +1,3 @@
Package: python-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python2-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python3-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,152 @@
FROM epicmorg/debian:bookworm-develop as builder
RUN apt update && apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libdb5.3-dev \
libbz2-dev \
libexpat1-dev \
liblzma-dev \
libffi-dev \
uuid-dev \
tk-dev
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
# python 3.11
ENV PYTHON_VERSION=3.11
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.11
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
ARG PYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python/${PYTHON_FULL_VERSION}/Python-${PYTHON_FULL_VERSION}.tgz
ARG PYTHON_TEMP=/tmp/Python-${PYTHON_FULL_VERSION}.tgz
##################################################################
# CMake
##################################################################
RUN mkdir -p ${PYTHON_DIR} ${PYTHON_SRC_DIR} ${PYTHON_BIN_DIR}
ADD ${PYTHON_DOWNLOAD_URL} /tmp
RUN tar -xvzf ${PYTHON_TEMP} --strip-components=1 --directory ${PYTHON_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${PYTHON_BIN_DIR}:${PATH}"
WORKDIR ${PYTHON_SRC_DIR}
RUN ./configure \
--prefix=${PYTHON_DIR} \
--enable-optimizations \
--enable-option-checking=fatal \
--with-lto \
--enable-loadable-sqlite-extensions \
--with-ensurepip=install \
--enable-profiling \
--with-system-expat \
--enable-option-checking=fatal \
--with-computed-gotos \
--with-pydebug \
--with-trace-refs \
--with-assertions \
--with-valgrind \
--with-static-libpython \
--with-openssl-rpath=auto \
--with-openssl=${OPENSSL_34_DIR} \
LDFLAGS="-Wl,-rpath,${OPENSSL_34_DIR}/lib64" \
CPPFLAGS="-I${OPENSSL_34_DIR}/include"
RUN make -j$(nproc) && \
make altinstall
RUN python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)"
##################################################################
##################################################################
##################################################################
# Final Layer
##################################################################
##################################################################
##################################################################
FROM epicmorg/debian:bookworm
RUN apt-get remove -y python3-pip
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
##################################################################
# OpenSSL 3.4
##################################################################
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
##################################################################
# Python 3.11
##################################################################
ENV PYTHON_VERSION=3.11
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.11
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
COPY etc/apt/preferences.d /etc/apt/preferences.d
COPY --from=builder ${PYTHON_DIR} ${PYTHON_DIR}
COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${OPENSSL_34_BIN_DIR}:${PYTHON_BIN_DIR}:${PATH}"
RUN mv ${PYTHON_SRC_DIR} /usr/local/src/${PYTHON_FULL_VERSION} && \
ln -sfv /usr/local/src/${PYTHON_FULL_VERSION} ${PYTHON_SRC_DIR} && \
rm -rfv /usr/bin/pip3 && \
rm -rfv /usr/bin/pip && \
rm -rfv /usr/bin/python && \
rm -rfv /usr/bin/python3 && \
update-alternatives --install /usr/bin/pip3 pip3 ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/pip pip ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python python ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python3 python3 ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
echo "# OpenSSL support" >> ${LD_CONF_DIR}/OpenSSL.conf && \
echo ${OPENSSL_34_LIB_DIR} >> ${LD_CONF_DIR}/OpenSSL.conf && \
ldconfig
RUN echo "=============================================" && \
python${PYTHON_VERSION} --version && \
python3 --version && \
python --version && \
pip3 --version && \
pip --version && \
echo "=============================================" && \
python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)" && \
echo "============================================="
WORKDIR ${EMG_LOCAL_BASE_DIR}
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
RUN updatedb

View File

@ -0,0 +1,36 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
kaniko-wrapper --version
dry:
make dry-run
test:
make dry-run
dry-run:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
build-compose:
docker-compose build --compress --parallel --progress plain
deploy:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af

View File

@ -0,0 +1,6 @@
#version: '3'
services:
app:
image: "epicmorg/debian:bookworm-python-3.11"
build:
context: .

View File

@ -0,0 +1,3 @@
Package: python-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python2-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python3-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,152 @@
FROM epicmorg/debian:bookworm-develop as builder
RUN apt update && apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libdb5.3-dev \
libbz2-dev \
libexpat1-dev \
liblzma-dev \
libffi-dev \
uuid-dev \
tk-dev
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
# python 3.12
ENV PYTHON_VERSION=3.12
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.9
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
ARG PYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python/${PYTHON_FULL_VERSION}/Python-${PYTHON_FULL_VERSION}.tgz
ARG PYTHON_TEMP=/tmp/Python-${PYTHON_FULL_VERSION}.tgz
##################################################################
# CMake
##################################################################
RUN mkdir -p ${PYTHON_DIR} ${PYTHON_SRC_DIR} ${PYTHON_BIN_DIR}
ADD ${PYTHON_DOWNLOAD_URL} /tmp
RUN tar -xvzf ${PYTHON_TEMP} --strip-components=1 --directory ${PYTHON_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${PYTHON_BIN_DIR}:${PATH}"
WORKDIR ${PYTHON_SRC_DIR}
RUN ./configure \
--prefix=${PYTHON_DIR} \
--enable-optimizations \
--enable-option-checking=fatal \
--with-lto \
--enable-loadable-sqlite-extensions \
--with-ensurepip=install \
--enable-profiling \
--with-system-expat \
--enable-option-checking=fatal \
--with-computed-gotos \
--with-pydebug \
--with-trace-refs \
--with-assertions \
--with-valgrind \
--with-static-libpython \
--with-openssl-rpath=auto \
--with-openssl=${OPENSSL_34_DIR} \
LDFLAGS="-Wl,-rpath,${OPENSSL_34_DIR}/lib64" \
CPPFLAGS="-I${OPENSSL_34_DIR}/include"
RUN make -j$(nproc) && \
make altinstall
RUN python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)"
##################################################################
##################################################################
##################################################################
# Final Layer
##################################################################
##################################################################
##################################################################
FROM epicmorg/debian:bookworm
RUN apt-get remove -y python3-pip
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
##################################################################
# OpenSSL 3.4
##################################################################
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
##################################################################
# Python 3.12
##################################################################
ENV PYTHON_VERSION=3.12
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.9
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
COPY etc/apt/preferences.d /etc/apt/preferences.d
COPY --from=builder ${PYTHON_DIR} ${PYTHON_DIR}
COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${OPENSSL_34_BIN_DIR}:${PYTHON_BIN_DIR}:${PATH}"
RUN mv ${PYTHON_SRC_DIR} /usr/local/src/${PYTHON_FULL_VERSION} && \
ln -sfv /usr/local/src/${PYTHON_FULL_VERSION} ${PYTHON_SRC_DIR} && \
rm -rfv /usr/bin/pip3 && \
rm -rfv /usr/bin/pip && \
rm -rfv /usr/bin/python && \
rm -rfv /usr/bin/python3 && \
update-alternatives --install /usr/bin/pip3 pip3 ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/pip pip ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python python ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python3 python3 ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
echo "# OpenSSL support" >> ${LD_CONF_DIR}/OpenSSL.conf && \
echo ${OPENSSL_34_LIB_DIR} >> ${LD_CONF_DIR}/OpenSSL.conf && \
ldconfig
RUN echo "=============================================" && \
python${PYTHON_VERSION} --version && \
python3 --version && \
python --version && \
pip3 --version && \
pip --version && \
echo "=============================================" && \
python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)" && \
echo "============================================="
WORKDIR ${EMG_LOCAL_BASE_DIR}
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
RUN updatedb

View File

@ -0,0 +1,36 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
kaniko-wrapper --version
dry:
make dry-run
test:
make dry-run
dry-run:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
build-compose:
docker-compose build --compress --parallel --progress plain
deploy:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af

View File

@ -0,0 +1,6 @@
#version: '3'
services:
app:
image: "epicmorg/debian:bookworm-python-3.12"
build:
context: .

View File

@ -0,0 +1,3 @@
Package: python-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python2-*
Pin: release *
Pin-Priority: -1

View File

@ -0,0 +1,3 @@
Package: python3-*
Pin: release *
Pin-Priority: -1

View File

@ -21,12 +21,13 @@ RUN apt update && apt install -y \
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
# python 3.13
ENV PYTHON_VERSION=3.13.2
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_VERSION}
ENV PYTHON_VERSION=3.13
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.2
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
ARG PYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
ARG PYTHON_TEMP=/tmp/Python-${PYTHON_VERSION}.tgz
ARG PYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python/${PYTHON_FULL_VERSION}/Python-${PYTHON_FULL_VERSION}.tgz
ARG PYTHON_TEMP=/tmp/Python-${PYTHON_FULL_VERSION}.tgz
##################################################################
# CMake
@ -66,7 +67,9 @@ RUN ./configure \
RUN make -j$(nproc) && \
make altinstall
RUN python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)"
##################################################################
##################################################################
##################################################################
@ -78,38 +81,63 @@ FROM epicmorg/debian:bookworm
RUN apt-get remove -y python3-pip
COPY etc/apt/preferences.d /etc/apt/preferences.d
COPY --from=builder ${PYTHON_DIR}/ ${PYTHON_DIR}/
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
##################################################################
# OpenSSL 3.4
##################################################################
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
##################################################################
# Python 3.13
##################################################################
ENV PYTHON_VERSION=3.13.2
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_VERSION}
ENV PYTHON_VERSION=3.13
ENV PYTHON_FULL_VERSION=${PYTHON_VERSION}.2
ENV PYTHON_DIR=${EMG_LOCAL_BASE_DIR}/python/${PYTHON_FULL_VERSION}
ARG PYTHON_BIN_DIR=${PYTHON_DIR}/bin
ARG PYTHON_SRC_DIR=${PYTHON_DIR}/src
ENV PATH="${PYTHON_BIN_DIR}:${PATH}"
COPY etc/apt/preferences.d /etc/apt/preferences.d
COPY --from=builder ${PYTHON_DIR} ${PYTHON_DIR}
COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
RUN mv ${PYTHON_SRC_DIR} /usr/local/src/${PYTHON_VERSION} && \
ln -sfv /usr/local/src/${PYTHON_VERSION} ${PYTHON_SRC_DIR} \
ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
ENV LD_LIBRARY_PATH=${OPENSSL_ROOT}/lib64:$LD_LIBRARY_PATH
ENV PATH="${OPENSSL_34_BIN_DIR}:${PYTHON_BIN_DIR}:${PATH}"
RUN mv ${PYTHON_SRC_DIR} /usr/local/src/${PYTHON_FULL_VERSION} && \
ln -sfv /usr/local/src/${PYTHON_FULL_VERSION} ${PYTHON_SRC_DIR} && \
rm -rfv /usr/bin/pip3 && \
rm -rfv /usr/bin/pip && \
rm -rfv /usr/bin/python && \
rm -rfv /usr/bin/python3 && \
update-alternatives --install /usr/bin/pip3 pip3 ${PYTHON_DIR}/bin/pip3.13 1 && \
update-alternatives --install /usr/bin/pip pip ${PYTHON_DIR}/bin/pip3.13 1 && \
update-alternatives --install /usr/bin/python python ${PYTHON_DIR}/bin/python3.13 1 && \
update-alternatives --install /usr/bin/python3 python3 ${PYTHON_DIR}/bin/python3.13 1
update-alternatives --install /usr/bin/pip3 pip3 ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/pip pip ${PYTHON_DIR}/bin/pip${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python python ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
update-alternatives --install /usr/bin/python3 python3 ${PYTHON_DIR}/bin/python${PYTHON_VERSION} 1 && \
echo "# OpenSSL support" >> ${LD_CONF_DIR}/OpenSSL.conf && \
echo ${OPENSSL_34_LIB_DIR} >> ${LD_CONF_DIR}/OpenSSL.conf && \
ldconfig
RUN echo "=============================================" && \
echo python3.13 --version && \
echo python3 --version && \
echo python --version && \
echo pip3 --version && \
echo pip --version && \
python${PYTHON_VERSION} --version && \
python3 --version && \
python --version && \
pip3 --version && \
pip --version && \
echo "=============================================" && \
python${PYTHON_VERSION} -c "import ssl; print(ssl.OPENSSL_VERSION)" && \
echo "============================================="
WORKDIR ${EMG_LOCAL_BASE_DIR}
##################################################################
# cleanup
##################################################################

View File

@ -200,8 +200,8 @@ ARG OPENSSL_111_DOWNLOAD_URL=https://www.openssl.org/source/old/${OPENSSL_111_VE
ARG OPENSSL_111_TEMP=/tmp/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP_SRC=/tmp/openssl-${OPENSSL_111_VERSION}w
# OpenSSL 3.0.15
ENV OPENSSL_30_VERSION=3.0.15
# OpenSSL 3.0
ENV OPENSSL_30_VERSION=3.0.16
ENV OPENSSL_30_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_30_VERSION}
ENV OPENSSL_30_BIN_DIR=${OPENSSL_30_DIR}/bin
ENV OPENSSL_30_INC_DIR=${OPENSSL_30_DIR}/include
@ -211,8 +211,8 @@ ARG OPENSSL_30_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_30_
ARG OPENSSL_30_TEMP=/tmp/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP_SRC=/tmp/openssl-${OPENSSL_30_VERSION}
# OpenSSL 3.1.7
ENV OPENSSL_31_VERSION=3.1.7
# OpenSSL 3.1
ENV OPENSSL_31_VERSION=3.1.8
ENV OPENSSL_31_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_31_VERSION}
ENV OPENSSL_31_BIN_DIR=${OPENSSL_31_DIR}/bin
ENV OPENSSL_31_INC_DIR=${OPENSSL_31_DIR}/include
@ -222,8 +222,8 @@ ARG OPENSSL_31_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_31_
ARG OPENSSL_31_TEMP=/tmp/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP_SRC=/tmp/openssl-${OPENSSL_31_VERSION}
# OpenSSL 3.2.3
ENV OPENSSL_32_VERSION=3.2.3
# OpenSSL 3.2
ENV OPENSSL_32_VERSION=3.2.4
ENV OPENSSL_32_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_32_VERSION}
ENV OPENSSL_32_BIN_DIR=${OPENSSL_32_DIR}/bin
ENV OPENSSL_32_INC_DIR=${OPENSSL_32_DIR}/include
@ -233,8 +233,8 @@ ARG OPENSSL_32_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_32_
ARG OPENSSL_32_TEMP=/tmp/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP_SRC=/tmp/openssl-${OPENSSL_32_VERSION}
# OpenSSL 3.3.2
ENV OPENSSL_33_VERSION=3.3.2
# OpenSSL 3.3
ENV OPENSSL_33_VERSION=3.3.3
ENV OPENSSL_33_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_33_VERSION}
ENV OPENSSL_33_BIN_DIR=${OPENSSL_33_DIR}/bin
ENV OPENSSL_33_INC_DIR=${OPENSSL_33_DIR}/include
@ -244,8 +244,8 @@ ARG OPENSSL_33_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_33_
ARG OPENSSL_33_TEMP=/tmp/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP_SRC=/tmp/openssl-${OPENSSL_33_VERSION}
# OpenSSL 3.4.0
ENV OPENSSL_34_VERSION=3.4.0
# OpenSSL 3.4
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include

View File

@ -186,8 +186,8 @@ ARG OPENSSL_111_DOWNLOAD_URL=https://www.openssl.org/source/old/${OPENSSL_111_VE
ARG OPENSSL_111_TEMP=/tmp/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP_SRC=/tmp/openssl-${OPENSSL_111_VERSION}w
# OpenSSL 3.0.15
ENV OPENSSL_30_VERSION=3.0.15
# OpenSSL 3.0
ENV OPENSSL_30_VERSION=3.0.16
ENV OPENSSL_30_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_30_VERSION}
ENV OPENSSL_30_BIN_DIR=${OPENSSL_30_DIR}/bin
ENV OPENSSL_30_INC_DIR=${OPENSSL_30_DIR}/include
@ -197,8 +197,8 @@ ARG OPENSSL_30_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_30_
ARG OPENSSL_30_TEMP=/tmp/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP_SRC=/tmp/openssl-${OPENSSL_30_VERSION}
# OpenSSL 3.1.7
ENV OPENSSL_31_VERSION=3.1.7
# OpenSSL 3.1
ENV OPENSSL_31_VERSION=3.1.8
ENV OPENSSL_31_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_31_VERSION}
ENV OPENSSL_31_BIN_DIR=${OPENSSL_31_DIR}/bin
ENV OPENSSL_31_INC_DIR=${OPENSSL_31_DIR}/include
@ -208,8 +208,8 @@ ARG OPENSSL_31_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_31_
ARG OPENSSL_31_TEMP=/tmp/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP_SRC=/tmp/openssl-${OPENSSL_31_VERSION}
# OpenSSL 3.2.3
ENV OPENSSL_32_VERSION=3.2.3
# OpenSSL 3.2
ENV OPENSSL_32_VERSION=3.2.4
ENV OPENSSL_32_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_32_VERSION}
ENV OPENSSL_32_BIN_DIR=${OPENSSL_32_DIR}/bin
ENV OPENSSL_32_INC_DIR=${OPENSSL_32_DIR}/include
@ -219,8 +219,8 @@ ARG OPENSSL_32_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_32_
ARG OPENSSL_32_TEMP=/tmp/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP_SRC=/tmp/openssl-${OPENSSL_32_VERSION}
# OpenSSL 3.3.2
ENV OPENSSL_33_VERSION=3.3.2
# OpenSSL 3.3
ENV OPENSSL_33_VERSION=3.3.3
ENV OPENSSL_33_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_33_VERSION}
ENV OPENSSL_33_BIN_DIR=${OPENSSL_33_DIR}/bin
ENV OPENSSL_33_INC_DIR=${OPENSSL_33_DIR}/include
@ -230,8 +230,8 @@ ARG OPENSSL_33_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_33_
ARG OPENSSL_33_TEMP=/tmp/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP_SRC=/tmp/openssl-${OPENSSL_33_VERSION}
# OpenSSL 3.4.0
ENV OPENSSL_34_VERSION=3.4.0
# OpenSSL 3.4
ENV OPENSSL_34_VERSION=3.4.1
ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include