mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
build was missing `libssl.1.1.so` and `libcrypto.1.1.so` symlinks needed by the executable itself, because python is now explicitly build with OpenSSL 1.1.1
118 lines
3.7 KiB
Text
118 lines
3.7 KiB
Text
# Build Pype docker image
|
|
FROM centos:7 AS builder
|
|
ARG OPENPYPE_PYTHON_VERSION=3.9.12
|
|
|
|
LABEL org.opencontainers.image.name="pypeclub/openpype"
|
|
LABEL org.opencontainers.image.title="OpenPype Docker Image"
|
|
LABEL org.opencontainers.image.url="https://openpype.io/"
|
|
LABEL org.opencontainers.image.source="https://github.com/pypeclub/pype"
|
|
LABEL org.opencontainers.image.documentation="https://openpype.io/docs/system_introduction"
|
|
LABEL org.opencontainers.image.created=$BUILD_DATE
|
|
LABEL org.opencontainers.image.version=$VERSION
|
|
|
|
|
|
USER root
|
|
|
|
# update base
|
|
RUN yum -y install deltarpm \
|
|
&& yum -y update \
|
|
&& yum clean all
|
|
|
|
# add tools we need
|
|
RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
|
|
&& yum -y install centos-release-scl \
|
|
&& yum -y install \
|
|
bash \
|
|
which \
|
|
git \
|
|
make \
|
|
devtoolset-7 \
|
|
cmake \
|
|
curl \
|
|
wget \
|
|
gcc \
|
|
zlib-devel \
|
|
pcre-devel \
|
|
perl-core \
|
|
bzip2 \
|
|
bzip2-devel \
|
|
readline-devel \
|
|
sqlite sqlite-devel \
|
|
openssl-devel \
|
|
openssl-libs \
|
|
openssl11-devel \
|
|
openssl11-libs \
|
|
tk-devel libffi-devel \
|
|
patchelf \
|
|
automake \
|
|
autoconf \
|
|
patch \
|
|
ncurses \
|
|
ncurses-devel \
|
|
qt5-qtbase-devel \
|
|
xcb-util-wm \
|
|
xcb-util-renderutil \
|
|
&& yum clean all
|
|
|
|
# we need to build our own patchelf
|
|
WORKDIR /temp-patchelf
|
|
RUN git clone -b 0.17.0 --single-branch https://github.com/NixOS/patchelf.git . \
|
|
&& source scl_source enable devtoolset-7 \
|
|
&& ./bootstrap.sh \
|
|
&& ./configure \
|
|
&& make \
|
|
&& make install
|
|
|
|
RUN mkdir /opt/openpype
|
|
# RUN useradd -m pype
|
|
# RUN chown pype /opt/openpype
|
|
# USER pype
|
|
|
|
RUN curl https://pyenv.run | bash
|
|
# ENV PYTHON_CONFIGURE_OPTS --enable-shared
|
|
|
|
RUN echo 'export PATH="$HOME/.pyenv/bin:$PATH"'>> $HOME/.bashrc \
|
|
&& echo 'eval "$(pyenv init -)"' >> $HOME/.bashrc \
|
|
&& echo 'eval "$(pyenv virtualenv-init -)"' >> $HOME/.bashrc \
|
|
&& echo 'eval "$(pyenv init --path)"' >> $HOME/.bashrc
|
|
RUN source $HOME/.bashrc \
|
|
&& export CPPFLAGS="-I/usr/include/openssl11" \
|
|
&& export LDFLAGS="-L/usr/lib64/openssl11 -lssl -lcrypto" \
|
|
&& export PATH=/usr/local/openssl/bin:$PATH \
|
|
&& export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH \
|
|
&& pyenv install ${OPENPYPE_PYTHON_VERSION}
|
|
|
|
COPY . /opt/openpype/
|
|
RUN rm -rf /openpype/.poetry || echo "No Poetry installed yet."
|
|
# USER root
|
|
# RUN chown -R pype /opt/openpype
|
|
RUN chmod +x /opt/openpype/tools/create_env.sh && chmod +x /opt/openpype/tools/build.sh
|
|
|
|
# USER pype
|
|
|
|
WORKDIR /opt/openpype
|
|
|
|
RUN cd /opt/openpype \
|
|
&& source $HOME/.bashrc \
|
|
&& pyenv local ${OPENPYPE_PYTHON_VERSION}
|
|
|
|
RUN source $HOME/.bashrc \
|
|
&& ./tools/create_env.sh
|
|
|
|
RUN source $HOME/.bashrc \
|
|
&& ./tools/fetch_thirdparty_libs.sh
|
|
|
|
RUN echo 'export PYTHONPATH="/opt/openpype/vendor/python:$PYTHONPATH"'>> $HOME/.bashrc
|
|
RUN source $HOME/.bashrc \
|
|
&& bash ./tools/build.sh
|
|
|
|
RUN cp /usr/lib64/libffi* ./build/exe.linux-x86_64-3.9/lib \
|
|
&& cp /usr/lib64/openssl11/libssl* ./build/exe.linux-x86_64-3.9/lib \
|
|
&& cp /usr/lib64/openssl11/libcrypto* ./build/exe.linux-x86_64-3.9/lib \
|
|
&& ln -sr ./build/exe.linux-x86_64-3.9/lib/libssl.so ./build/exe.linux-x86_64-3.9/lib/libssl.1.1.so \
|
|
&& ln -sr ./build/exe.linux-x86_64-3.9/lib/libcrypto.so ./build/exe.linux-x86_64-3.9/lib/libcrypto.1.1.so \
|
|
&& cp /root/.pyenv/versions/${OPENPYPE_PYTHON_VERSION}/lib/libpython* ./build/exe.linux-x86_64-3.9/lib \
|
|
&& cp /usr/lib64/libxcb* ./build/exe.linux-x86_64-3.9/vendor/python/PySide2/Qt/lib
|
|
|
|
RUN cd /opt/openpype \
|
|
rm -rf ./vendor/bin
|