123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # Use the official Ubuntu base image
- FROM ubuntu:22.04
- # Set environment variables to non-interactive (this prevents some prompts)
- ENV DEBIAN_FRONTEND=noninteractive
- # Install necessary dependencies for OpenFHE and JupyterLab
- RUN apt-get update && apt-get install -y \
- git \
- cmake \
- build-essential \
- python3 \
- python3-dev \
- python3-pip \
- python3-venv \
- sudo \
- && apt-get clean && rm -rf /var/lib/apt/lists/*
- # Install PyBind11
- RUN pip3 install "pybind11[global]"
-
- # Install JupyterLab
- RUN python3 -m pip install --no-cache-dir jupyterlab
- # Clone and build OpenFHE-development
- RUN git clone https://github.com/openfheorg/openfhe-development.git \
- && cd openfhe-development \
- && mkdir build \
- && cd build \
- && cmake -DBUILD_UNITTESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF .. \
- && make -j$(nproc) \
- && make install
- # Assume that OpenFHE installs libraries into /usr/local/lib
- # Update LD_LIBRARY_PATH to include this directory
- ENV LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
- # Clone and build OpenFHE-Python
- RUN git clone https://github.com/openfheorg/openfhe-python.git \
- && cd openfhe-python \
- && mkdir build \
- && cd build \
- && cmake .. \
- && make -j$(nproc) \
- && make install
- # Expose the port JupyterLab will listen on
- EXPOSE 8888
- # Set the working directory
- WORKDIR /workspace
- # Start JupyterLab without token authentication
- CMD ["jupyter-lab", "--ip=0.0.0.0", "--no-browser", "--allow-root", "--NotebookApp.token=''", "--NotebookApp.allow_origin='*'", "--NotebookApp.password=''", "--NotebookApp.password_required=False"]
|