Mentions légales du service

Skip to content
Snippets Groups Projects
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"]