mirror of
https://github.com/zama-ai/concrete.git
synced 2026-01-10 13:27:57 -05:00
previous version was not working properly (too recent). So we switched to 11.8 and thus downgraded to gcc11. The reason for using ?= in the Makefile is to default to gcc11 in the docker image, as those variables are set in the env.
52 lines
2.2 KiB
Docker
52 lines
2.2 KiB
Docker
FROM quay.io/pypa/manylinux_2_28_x86_64:2024-02-08-a1b4ddc
|
|
|
|
# epel-release is for install ccache
|
|
RUN dnf clean all
|
|
RUN dnf install -y epel-release
|
|
RUN dnf update -y
|
|
RUN dnf install -y ninja-build hwloc-devel ccache ncurses-devel
|
|
RUN dnf install -y openssh-clients graphviz graphviz-devel
|
|
RUN mkdir -p ~/.ssh/ && ssh-keyscan -t ecdsa github.com >> ~/.ssh/known_hosts
|
|
# Setup gcc-11 (required for cuda11.8)
|
|
RUN dnf install -y gcc-toolset-11
|
|
ENV C_COMPILER=/opt/rh/gcc-toolset-11/root/usr/bin/gcc
|
|
ENV CXX_COMPILER=/opt/rh/gcc-toolset-11/root/usr/bin/c++
|
|
# 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-2024-01-31
|
|
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-8 /usr/local/cuda-11.8/ /usr/local/cuda-11.8/
|
|
COPY --from=ghcr.io/zama-ai/cuda:11-8 /usr/lib64/libcuda.so* /usr/lib64/
|
|
ENV PATH "$PATH:/usr/local/cuda-11.8/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
|
|
ENV PYTHONPATH "$PYTHONPATH:/build/tools/concretelang/python_packages/concretelang_core"
|
|
ENV PATH "$PATH:/build/bin"
|
|
RUN ccache -z
|