Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 2.68 KB

README.md

File metadata and controls

59 lines (43 loc) · 2.68 KB

py-da-stack

build and push

Python Data Analysis stack in a Docker container

How this works

This image is based on the latest jupyter/tensorflow-notebook image. These images are maintained by the Project Jupyter at the docker-stacks GitHub repository and ensure a recent Jupyter environment that can run Jupyter Lab or Notebook server or behind a JupyterHub.

The additional packages that are installed via conda from the conda-forge channel are specified in the file requirements.txt.

! Not sure if that is still true: ! Every Sunday, 5:45 UTC, the image will be rebuild so that the package versions are kept up-to-date. To pin an envronment, you may tag the image you use for the analysis (see below).

How to use

Use the pre-built Docker images with Docker

You can use docker images that come with a fully working Jupyter environment and run them with docker.

Assuming you want to expose your work directory to /work in the container, then run:

docker pull martinclaus/py-da-stack:latest
docker run \
    -v ${HOME}/work/:/app -w /app \
    -p 8888:8888 martinclaus/py-da-stack:latest

If you want to run a specific version of this image, replace the tag latest accordingly. All available versions are found on Dockerhub.

Use the pre-built Docker images with Singularity

To run from your /work dir with Singularity:

cd /work
singularity run \
    -B $(mktemp -d):/run/user \
    docker://martinclaus/py-da-stack:latest

If you want to run a specific version of this image, replace the tag latest accordingly. All available versions are found on Dockerhub.

Make you analysis reproducible

To obtain a reproducible analysis, it is necessary to freeze your software environment. This can be achieved by tagging the image you want to use for the analysis.

docker tag martinclaus/py-da-stack:latest <my_docker_namespace>/py-da-stack:<analysis_id>

You can then push the image to your own docker namespace <my_docker_namespace>.

docker push <my_docker_namespace>/py-da-stack:<analysis_id>

Note that you need to register at DockerHub to get you own namespace. You can also choose a a different repository name than py-da-stack.