jupyter-stacks-voila / Dockerfile
Ahmad Ammari
Add application files
fab07ce
##################
# Building Stage #
##################
FROM jupyter/base-notebook:python-3.10.11 AS builder
COPY requirements.txt .
RUN python3 -m pip install --user --no-cache-dir --upgrade pip && \
conda install -c conda-forge sentencepiece==0.1.95 && \
python3 -m pip install --user --no-cache-dir -r requirements.txt && \
python3 -m pip install --user --no-cache-dir --force-reinstall spacy==3.5.0
#################
# Running Stage #
#################
FROM jupyter/base-notebook:python-3.10.11 AS run
# Copy installed python packages (they are installed in that directory)
COPY --from=builder /home/jovyan/.local/ /home/jovyan/.local
USER root
ENV PYTHONPATH "/home/jovyan/work/"
USER $NB_USER
# Install necessary jupyter packages for writing here. e.g.
RUN jupyter nbextension enable --py --sys-prefix widgetsnbextension
####################
# Deployment Stage #
####################
FROM jupyter/base-notebook:python-3.10.11 AS deploy
# Copy installed python packages (they are installed in that directory)
COPY --from=builder /home/jovyan/.local/ /home/jovyan/.local
COPY notebooks .
COPY docker/run_voila .
USER root
EXPOSE 7860
ENV PYTHONPATH "/home/jovyan/work/"
USER $NB_USER
# Install necessary jupyter packages for deployment here. e.g.
RUN jupyter nbextension enable --py --sys-prefix widgetsnbextension \
&& jupyter nbextension install --py --symlink --sys-prefix ipympl \
&& jupyter nbextension enable --py --sys-prefix ipympl \
&& jupyter nbextension install --py --symlink --sys-prefix ipysheet \
&& jupyter nbextension enable --py --sys-prefix ipysheet \
&& jupyter nbextension enable --py --sys-prefix voila
CMD ["bash", "-c", "nohup ./run_voila & jupyter notebook --ip=0.0.0.0 --port=7860 --no-browser --allow-root --NotebookApp.token='huggingface' --NotebookApp.max_buffer_size=5368709120 --NotebookApp.tornado_settings=\"{'headers': {'Content-Security-Policy': 'frame-ancestors *'}}\" --NotebookApp.cookie_options=\"{'SameSite': 'None', 'Secure': True}\" --NotebookApp.disable_check_xsrf=True"]