-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
78 lines (58 loc) · 2.53 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Jupyter container used for Galaxy IPython (+other kernels) Integration
FROM pangeo/pangeo-notebook:2023.02.27
MAINTAINER Anne Fouilloux, annef@simula.no
ENV DEBIAN_FRONTEND noninteractive
# Install system libraries first as root
USER root
RUN apt-get -qq update && apt-get install --no-install-recommends -y libcurl4-openssl-dev libxml2-dev \
apt-transport-https python-dev-is-python3 libc-dev pandoc pkg-config liblzma-dev libbz2-dev libpcre3-dev \
build-essential libblas-dev liblapack-dev gfortran libzmq3-dev libyaml-dev libxrender1 fonts-dejavu \
libfreetype6-dev libpng-dev net-tools procps libreadline-dev wget software-properties-common octave \
ca-certificates wget vim subversion sshfs openssh-client \
# IHaskell dependencies
zlib1g-dev libtinfo-dev libcairo2-dev libpango1.0-dev && \
apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER $NB_USER
# Python packages
RUN conda update -n base conda && conda clean -yt && \
pip install --no-cache-dir bioblend galaxy-ie-helpers
ADD ./startup.sh /startup.sh
ADD ./get_notebook.py /get_notebook.py
# We can get away with just creating this single file and Jupyter will create the rest of the
# profile for us.
RUN mkdir -p /home/$NB_USER/.ipython/profile_default/startup/
COPY ./ipython-profile.py /home/$NB_USER/.ipython/profile_default/startup/00-load.py
COPY jupyter_notebook_config.py /home/$NB_USER/.jupyter/
COPY jupyter_lab_config.py /home/$NB_USER/.jupyter/
ADD ./default_notebook.ipynb /home/$NB_USER/notebook.ipynb
# ENV variables to replace conf file
ENV DEBUG=false \
GALAXY_WEB_PORT=10000 \
NOTEBOOK_PASSWORD=none \
CORS_ORIGIN=none \
DOCKER_PORT=none \
API_KEY=none \
HISTORY_ID=none \
REMOTE_HOST=none \
GALAXY_URL=none
# Install the Dask dashboard
RUN pip install dask-labextension
# Dask Scheduler & Bokeh ports
EXPOSE 8787
EXPOSE 8786
USER root
RUN apt-get -qq update && \
apt-get install -y net-tools procps && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# /import will be the universal mount-point for Jupyter
# The Galaxy instance can copy in data that needs to be present to the Jupyter webserver
RUN mkdir -p /import/jupyter/outputs/ && \
mkdir -p /import/jupyter/data && \
mkdir /export/ && \
chown -R $NB_USER:users /home/$NB_USER/ /import /export/
ENV USER=$NB_USER
WORKDIR /import
# Start Jupyter Notebook
CMD /startup.sh