gpu-jupyter/generate_Dockerfile.sh
2020-02-23 20:26:12 +01:00

84 lines
3.6 KiB
Bash
Executable File

#!/usr/bin/env bash
cd $(cd -P -- "$(dirname -- "$0")" && pwd -P)
# Set the path of the generated Dockerfile
export DOCKERFILE=".build/Dockerfile"
export STACKS_DIR=".build/docker-stacks"
# Clone if docker-stacks doesn't exist, and pull.
ls $STACKS_DIR/README.md > /dev/null 2>&1 || (echo "Docker-stacks was not found, cloning repository" \
&& git clone https://github.com/jupyter/docker-stacks.git $STACKS_DIR)
cd $STACKS_DIR && git pull && cd -
# Write the contents into the DOCKERFILE and start with the header
cat src/Dockerfile.header > $DOCKERFILE
cp src/jupyter_notebook_config.json .build/
echo "
############################################################################
#################### Dependency: jupyter/base-image ########################
############################################################################
" >> $DOCKERFILE
cat $STACKS_DIR/base-notebook/Dockerfile | grep -v BASE_CONTAINER >> $DOCKERFILE
# copy files that are used during the build:
cp $STACKS_DIR/base-notebook/jupyter_notebook_config.py .build/
cp $STACKS_DIR/base-notebook/fix-permissions .build/
cp $STACKS_DIR/base-notebook/start.sh .build/
cp $STACKS_DIR/base-notebook/start-notebook.sh .build/
cp $STACKS_DIR/base-notebook/start-singleuser.sh .build/
chmod 755 .build/*
echo "
############################################################################
################# Dependency: jupyter/minimal-notebook #####################
############################################################################
" >> $DOCKERFILE
cat $STACKS_DIR/minimal-notebook/Dockerfile | grep -v BASE_CONTAINER >> $DOCKERFILE
echo "
############################################################################
################# Dependency: jupyter/scipy-notebook #######################
############################################################################
" >> $DOCKERFILE
cat $STACKS_DIR/scipy-notebook/Dockerfile | grep -v BASE_CONTAINER >> $DOCKERFILE
echo "
############################################################################
################ Dependency: jupyter/datascience-notebook ##################
############################################################################
" >> $DOCKERFILE
cat $STACKS_DIR/datascience-notebook/Dockerfile | grep -v BASE_CONTAINER >> $DOCKERFILE
echo "
############################################################################
################ Dependency: jupyter/tensorflow-notebook ###################
############################################################################
" >> $DOCKERFILE
cat $STACKS_DIR/tensorflow-notebook/Dockerfile | grep -v BASE_CONTAINER >> $DOCKERFILE
# Note that the following step also installs the cudatoolkit, which is
# essential to access the GPU.
echo "
############################################################################
########################## Dependency: pytorch #############################
############################################################################
" >> $DOCKERFILE
cat src/Dockerfile.pytorch >> $DOCKERFILE
echo "
############################################################################
############################ Useful packages ###############################
############################################################################
" >> $DOCKERFILE
cat src/Dockerfile.usefulpackages >> $DOCKERFILE
# Copy the content from the build directory to .
#cp $(find $(dirname $DOCKERFILE) -type f | grep -v $STACKS_DIR | grep -v .gitkeep) .
echo "GPU Dockerfile was generated sucessfully in file ${DOCKERFILE}."
echo "Run 'bash run_Dockerfile.sh -p [PORT]' to start the GPU-based Juyterlab instance."