Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docker/jupyter/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
venv
18 changes: 18 additions & 0 deletions docker/jupyter/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Start from a core stack version
FROM jupyter/scipy-notebook:latest
# Install from requirements.txt file
COPY --chown=${NB_UID}:${NB_GID} requirements.txt /tmp/
RUN pip install --quiet --no-cache-dir --requirement /tmp/requirements.txt && \
fix-permissions "${CONDA_DIR}" && \
fix-permissions "/home/${NB_USER}"

COPY start-wrapper.sh /usr/local/bin/

# Custom fonts config
RUN mkdir -p /home/${NB_USER}/.config/fontconfig
COPY etc/fonts.conf /home/${NB_USER}/.config/fontconfig/fonts.conf
COPY etc/fonts /home/${NB_USER}/.fonts
RUN rm -rf /home/${NB_USER}/.cache/matplotlib
RUN fc-cache --force
RUN python3 -c 'import matplotlib.font_manager; matplotlib.font_manager._load_fontmanager(try_read_cache=False)'
CMD ["start-wrapper.sh", "start-notebook.sh"]
37 changes: 37 additions & 0 deletions docker/jupyter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# JupyterLab with jupytext and other custom extensions

## Build & run


docker build -t imkteksim/dtool-jupyter .
docker run -it -p 8888:8888 -v ${HOME}/.config/dtool:/home/jovyan/.config/dtool -v ${HOME}:/home/jovyan/work imkteksim/dtool-jupyter

## Creation protocol

Describes how to extract imports from python scripts and dump as pip-processible `requirements.txt`.

```console
python3 -m venv venv
source venv/bin/activate

pip install --upgrade pip
pip install wheel
pip install pip-tools

pip freeze > initial.txt
cat initial.txt | sed 's/==.*//g' > initial.in

# extract requirements from some scripts with pipreqs
cat pipreqs_requirements.txt | sed 's/==.*//g' > pipreqs_requirements.in

cp pipreqs_requirements.in edited_requirements.in # and edit manually

cat initial.in edited_requirements.in

cat initial.in edited_requirements.in > requirements.in

# remove pkg_resources from requirements.in,
# manually add packages, i.e. jupytext, openpyxl, ...

pip-compile requirements.in
```
26 changes: 26 additions & 0 deletions docker/jupyter/edited_requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ase
asgiref
cycler
dtool
dtool_lookup_api
dtoolcore
dtool-s3
gromacs
GromacsWrapper
imteksimfw
ipython
ipywidgets
Jinja2
matplotlib
MDAnalysis
miniball
nglview
numpy
ovito
pandas
panedr
ParmEd
pymongo
PySide2
PyYAML
scipy
1 change: 1 addition & 0 deletions docker/jupyter/etc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fonts/*
6 changes: 6 additions & 0 deletions docker/jupyter/etc/fonts.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- ~/.fonts.conf for per-user font configuration -->
<fontconfig>
<dir>~/.fonts</dir>
</fontconfig>
5 changes: 5 additions & 0 deletions docker/jupyter/initial.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
click
pep517
pip-tools
pkg_resources
tomli
5 changes: 5 additions & 0 deletions docker/jupyter/initial.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
click==8.0.4
pep517==0.12.0
pip-tools==6.5.1
pkg_resources==0.0.0
tomli==2.0.1
29 changes: 29 additions & 0 deletions docker/jupyter/pipreqs_requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ase
asgiref
cycler
dtool_lookup_api
dtoolcore
fireworks
FireWorks.egg
gromacs
GromacsWrapper
imteksimfw
imteksimfw.egg
ipython
ipywidgets
Jinja2
matplotlib
MDAnalysis
miniball
nglview
numpy
ovito
pandas
panedr
ParmEd
pymongo
PySide2
PyYAML
scikit_learn
scipy
SurfaceTopography
29 changes: 29 additions & 0 deletions docker/jupyter/pipreqs_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ase==3.21.1
asgiref==3.3.1
cycler==0.10.0
dtool_lookup_api==0.5.0
dtoolcore==3.18.0
fireworks==2.0.2
FireWorks.egg==info
gromacs==0.0.0
GromacsWrapper==0.8.0
imteksimfw==0.5.1
imteksimfw.egg==info
ipython==8.1.1
ipywidgets==7.6.3
Jinja2==2.11.2
matplotlib==3.3.3
MDAnalysis==2.1.0
miniball==1.0.4
nglview==2.7.7
numpy==1.19.5
ovito==3.6.0
pandas==1.2.1
panedr==0.5.2
ParmEd==3.2.0
pymongo==3.11.2
PySide2==5.15.2.1
PyYAML==6.0
scikit_learn==1.0.2
scipy==1.6.0
SurfaceTopography==0.101.3
34 changes: 34 additions & 0 deletions docker/jupyter/requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
click
pep517
pip-tools
tomli
ase
asgiref
cycler
dtool
dtool_lookup_api
dtoolcore
dtool-s3
gromacs
GromacsWrapper
igraph
imteksimfw
ipython
ipywidgets
Jinja2
jupyterlab_autorun_cells
jupytext
matplotlib
MDAnalysis
miniball
nglview
numpy
openpyxl
ovito
pandas
panedr
ParmEd
pymongo
PySide2
PyYAML
scipy
Loading