Files
OBIJupyterHub/obijupyterhub/Dockerfile

54 lines
1.8 KiB
Docker
Raw Normal View History

2025-10-15 14:08:52 +02:00
# ---------- Stage 1 : builder ----------
FROM jupyter/base-notebook:latest AS builder
2025-10-14 17:40:41 +02:00
USER root
2025-10-15 14:08:52 +02:00
# Install system dependencies for R, build tools and Go/Rust
2025-10-14 17:40:41 +02:00
RUN apt-get update && apt-get install -y \
2025-10-15 14:08:52 +02:00
r-base r-base-dev \
libcurl4-openssl-dev libssl-dev libxml2-dev \
build-essential git curl \
2025-10-14 17:40:41 +02:00
&& apt-get clean && rm -rf /var/lib/apt/lists/*
2025-10-15 14:08:52 +02:00
# Install R kernel + useful packages
2025-10-14 17:40:41 +02:00
RUN R -e "install.packages('IRkernel', repos='http://cran.rstudio.com/')" && \
2025-10-15 14:08:52 +02:00
R -e "IRkernel::installspec(user = FALSE)" && \
R -e "install.packages(c('tidyverse','vegan','ade4'), repos='http://cran.rstudio.com/')"
2025-10-14 17:40:41 +02:00
2025-10-15 14:08:52 +02:00
# Install bash kernel
RUN pip install bash_kernel && python -m bash_kernel.install --sys-prefix
2025-10-14 17:40:41 +02:00
2025-10-15 14:08:52 +02:00
# Install obitools4
2025-10-15 07:15:05 +02:00
RUN curl -L https://raw.githubusercontent.com/metabarcoding/obitools4/master/install_obitools.sh | bash
# Install csvkit
RUN pip install csvkit
2025-10-15 14:08:52 +02:00
# Install csvlens via Rust
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y && \
. $HOME/.cargo/env && \
cargo install csvlens
RUN apt-get update && apt-get install -y ruby ruby-dev build-essential \
&& gem install youplot
# Copy csvlens to /usr/local/bin for final use
RUN cp $HOME/.cargo/bin/csvlens /usr/local/bin/
2025-10-15 07:15:05 +02:00
2025-10-15 14:08:52 +02:00
# Set permissions for Jupyter user
2025-10-14 17:40:41 +02:00
RUN mkdir -p /home/${NB_USER}/.local/share/jupyter && \
2025-10-15 14:08:52 +02:00
chown -R ${NB_UID}:${NB_GID} /home/${NB_USER}
2025-10-14 17:40:41 +02:00
2025-10-16 01:07:07 +02:00
COPY start-notebook.sh /usr/local/bin/start-notebook.sh
RUN chmod +x /usr/local/bin/start-notebook.sh
2025-10-15 14:08:52 +02:00
# Switch back to Jupyter user
USER ${NB_UID}:${NB_GID}
WORKDIR /home/${NB_USER}/work
2025-10-14 17:40:41 +02:00
2025-10-15 14:08:52 +02:00
# Environment variables
ENV PATH="/home/${NB_USER}/work/course/bin:${PATH}"
ENV R_LIBS_USER="/home/${NB_USER}/work/R_packages"
ENV R_LIBS_SITE="/home/${NB_USER}/work/course/R_packages:/usr/local/lib/R/site-library:/usr/lib/R/site-library"
2025-10-16 01:07:07 +02:00