FROM quay.io/pypa/manylinux_2_28_x86_64:2022-11-19-1b19e81 # epel-release is for install ccache # clang is needed for rust bindings RUN dnf install -y epel-release RUN dnf update -y RUN dnf install -y ninja-build hwloc-devel ccache clang ncurses-devel RUN dnf install -y openssh-clients RUN dnf clean all RUN mkdir -p ~/.ssh/ && ssh-keyscan -t ecdsa github.com >> ~/.ssh/known_hosts # setup ccache with an unlimited amount of files and storage RUN ccache -M 0 RUN ccache -F 0 # Install Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH=/root/.cargo/bin:$PATH RUN rustup install nightly SHELL ["/bin/bash", "-c"] # Install boost ADD https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.gz /boost_1_71_0.tar.gz RUN tar -xzvf /boost_1_71_0.tar.gz WORKDIR /boost_1_71_0 RUN ./bootstrap.sh && ./b2 --with-filesystem install # Setup HPX COPY --from=ghcr.io/zama-ai/hpx:latest /hpx /hpx ENV HPX_INSTALL_DIR=/hpx/build # Setup CUDA COPY --from=ghcr.io/zama-ai/cuda:11-7 /usr/local/cuda-11.7/ /usr/local/cuda-11.7/ COPY --from=ghcr.io/zama-ai/cuda:11-7 /usr/lib64/libcuda.so* /usr/lib64/ ENV PATH "$PATH:/usr/local/cuda-11.7/bin" # Set the python path. Options: [cp37-cp37m, cp38-cp38, cp39-cp39, cp310-cp310] # Links and env would be available to use the appropriate python version ARG python_tag=cp38-cp38 RUN ln -s /opt/python/${python_tag}/bin/pip /bin/pip RUN ln -s /opt/python/${python_tag}/bin/python /bin/python ENV PYTHON_EXEC=/opt/python/${python_tag}/bin/python # Install python deps RUN pip install numpy pybind11==2.8 PyYAML pytest wheel auditwheel # Setup and build compiler COPY / /workdir WORKDIR /workdir/compilers/concrete-compiler/compiler RUN mkdir -p /build RUN --mount=type=ssh make DATAFLOW_EXECUTION_ENABLED=ON BUILD_DIR=/build CCACHE=ON \ Python3_EXECUTABLE=${PYTHON_EXEC} \ concretecompiler python-bindings rust-bindings ENV PYTHONPATH "$PYTHONPATH:/build/tools/concretelang/python_packages/concretelang_core" ENV PATH "$PATH:/build/bin" RUN ccache -z