-
TOULLIER Thibaud authoredTOULLIER Thibaud authored
Dockerfile 1.00 KiB
FROM ocaml/opam:debian-12-ocaml-4.14
USER root
# Install necessaries packages
RUN sudo apt update
RUN sudo apt install -y \
python3-full \
pipx \
zlib1g-dev \
libffi-dev \
libgmp-dev \
libzmq5-dev \
pkg-config
# add pipx bin to PATH
ENV PATH="$PATH:/home/opam/.local/bin"
# install jupyter
RUN pipx install jupyter --include-deps
RUN pipx ensurepath
# install notebook
RUN pipx inject jupyter notebook
RUN pipx ensurepath
# now provide ocaml kernel
RUN opam install jupyter
RUN grep topfind ~/.ocamlinit || echo '#use "topfind";;' >> ~/.ocamlinit # For using '#require' directive
RUN grep Topfind.log ~/.ocamlinit || echo 'Topfind.log:=ignore;;' >> ~/.ocamlinit # Suppress logging of topfind (recommended)
RUN /home/opam/.opam/4.14/bin/ocaml-jupyter-opam-genspec
# install kernel
RUN /home/opam/.local/bin/jupyter kernelspec install --user --name "ocaml-jupyter-$(opam var switch)" "$(opam var share)/jupyter"
WORKDIR /notebooks
COPY run.sh /
EXPOSE 8888
CMD ["bash", "-c", "/run.sh"]