Skip to content

Instantly share code, notes, and snippets.

@FranzDiebold
Last active March 21, 2024 10:06
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FranzDiebold/12c5da9dc56758e28b25e2cf37351831 to your computer and use it in GitHub Desktop.
Save FranzDiebold/12c5da9dc56758e28b25e2cf37351831 to your computer and use it in GitHub Desktop.
Bash utilities
export START="Documents/dev"
if [[ $PWD == $HOME ]]; then
cd $START
fi
alias python3.8='docker run --rm -it -v "${PWD}":/usr/src/app -w /usr/src/app python:3.8 python'
alias python3.9='docker run --rm -it -v "${PWD}":/usr/src/app -w /usr/src/app python:3.9 python'
alias python3.10='docker run --rm -it -v "${PWD}":/usr/src/app -w /usr/src/app python:3.10 python'
alias python3.11='docker run --rm -it -v "${PWD}":/usr/src/app -w /usr/src/app python:3.11 python'
alias python='docker run --rm -it -v "${PWD}":/usr/src/app -w /usr/src/app python:latest python'
alias jupyter='docker run --rm -p 8888:8888 -p 4040:4040 -v "${PWD}":/home/jovyan franzdiebold/datascience-ultimate:latest'
alias jupyter-server='docker run --rm -p 8888:8888 -p 4040:4040 -v "${PWD}":/home/jovyan franzdiebold/datascience-ultimate-server:latest'
alias node12='docker run --rm -it -v "$PWD":/app -w /app node:12'
alias node14='docker run --rm -it -v "$PWD":/app -w /app node:14'
alias node16='docker run --rm -it -v "$PWD":/app -w /app node:16'
alias node18='docker run --rm -it -v "$PWD":/app -w /app node:18'
alias node='docker run --rm -it -v "$PWD":/app -w /app node:latest'
alias npm='node npm'
alias svn='docker run --rm -e UID="$(id -u)" -e GID="$(id -g)" -e SVN_USERNAME -e SVN_PASSWORD -v "$(pwd):/workspace" -v "$HOME/.subversion:/home/user/.subversion" profiprog/svn svn'
alias aws='docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli:latest'
alias serve-spa='docker run --rm -it -p 3000:8080 -v ${PWD}/:/data/docroot ghcr.io/paulscherrerinstitute/simple-spa-server'
# PyEnvD: Python environment dockerized
slugify() {
echo "$1" | iconv -t ascii//TRANSLIT | sed -E 's/[^a-zA-Z0-9-]+/-/g' | sed -E 's/^-+|-+$//g' | tr A-Z a-z
}
env_name() {
echo $(slugify ${${1:-$PWD}: -200})
}
py-env-3.8() {
docker run --rm -it -v "$(env_name $1)_python":/usr/local/lib -v "${PWD}":/usr/src/app -w /usr/src/app python:3.8 bash
}
py-env-3.9() {
docker run --rm -it -v "$(env_name $1)_python":/usr/local/lib -v "${PWD}":/usr/src/app -w /usr/src/app python:3.9 bash
}
py-env-3.10() {
docker run --rm -it -v "$(env_name $1)_python":/usr/local/lib -v "${PWD}":/usr/src/app -w /usr/src/app python:3.10 bash
}
py-env-3.11() {
docker run --rm -it -v "$(env_name $1)_python":/usr/local/lib -v "${PWD}":/usr/src/app -w /usr/src/app python:3.11 bash
}
py-env() {
docker run --rm -it -v "$(env_name $1)_python":/usr/local/lib -v "${PWD}":/usr/src/app -w /usr/src/app python:latest bash
}
py-env-del() {
docker volume rm "$(env_name $1)_python"
}
jupyter-env() {
local working_directory="/usr/src/$(basename ${PWD})"
local ssh_directory="${HOME}/.ssh"
docker run --rm -p 8888:8888 -p 4040:4040 -v "$(env_name $1)_jupyter":/opt/conda/lib/python3.9/site-packages -v "${PWD}":"$working_directory" -v $ssh_directory:/home/jovyan/.ssh -w $working_directory franzdiebold/datascience-ultimate:latest
}
alias je=jupyter-env
jupyter-env-del() {
docker volume rm "$(env_name $1)_jupyter"
}
jupyter-server-env() {
local working_directory="/usr/src/$(basename ${PWD})"
local ssh_directory="${HOME}/.ssh"
docker run --rm -p 8888:8888 -p 4040:4040 -v "$(env_name $1)_jupyter-server":/opt/conda/lib/python3.9/site-packages -v "${PWD}":"$working_directory" -v $ssh_directory:/home/jovyan/.ssh -w $working_directory franzdiebold/datascience-ultimate-server:latest
}
alias jes=jupyter-server-env
jupyter-server-env-del() {
docker volume rm "$(env_name $1)_jupyter-server"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment