Skip to content
Snippets Groups Projects
Commit 2a3eec19 authored by Emmanuel Bruno's avatar Emmanuel Bruno
Browse files

initial release.é

parents
Branches
No related tags found
No related merge requests found
work
ARG BASE_CONTAINER=brunoe/jupyterutln-default:develop
FROM $BASE_CONTAINER
LABEL maintainer="Emmanuel Bruno <emmanuel.bruno@univ-tln.fr>"
ENV PLANTUML_VERSION 1.2022.1
ENV PLANTUML_SHA1 ac9847dac6687f5079793952cf981f8d75ff4515
USER root
# Install minimal dependencies
RUN apt-get update && apt-get install --yes --no-install-recommends\
coreutils \
curl \
dnsutils \
gnupg \
graphviz \
inkscape \
iputils-ping \
net-tools \
pandoc \
procps \
tree \
ttf-bitstream-vera \
zsh && \
apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/apt
## ZSH
ADD zsh/initzsh.sh /tmp/initzsh.sh
ADD zsh/p10k.zsh $HOME/.p10k.zsh
RUN echo -e "\e[93m**** Install Java Kernel for Jupyter ****\e[38;5;241m" && \
curl -sL https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip -o /tmp/ijava-kernel.zip && \
unzip /tmp/ijava-kernel.zip -d /tmp/ijava-kernel && \
cd /tmp/ijava-kernel && \
python3 install.py --sys-prefix && \
# jupyter kernelspec install --user java/ && \
cd && rm -rf /tmp/ijava-kernel /tmp/ijava-kernel.zip && \
echo -e "\e[93m**** Install ZSH Kernel for Jupyter ****\e[38;5;241m" && \
python3 -m pip install zsh_jupyter_kernel && \
python3 -m zsh_jupyter_kernel.install --sys-prefix && \
echo -e "\e[93m**** Update Jupyter config ****\e[38;5;241m" && \
mkdir -p $HOME/jupyter_data && \
jupyter lab --generate-config && \
sed -i -e '/c.ServerApp.disable_check_xsrf =/ s/= .*/= True/' \
-e 's/# \(c.ServerApp.disable_check_xsrf\)/\1/' \
-e '/c.ServerApp.data_dir =/ s/= .*/= "\/home\/jovyan\/jupyter_data"/' \
-e "/c.ServerApp.terminado_settings =/ s/= .*/= { 'shell_command': ['\/bin\/zsh'] }/" \
-e 's/# \(c.ServerApp.terminado_settings\)/\1/' \
$HOME/.jupyter/jupyter_lab_config.py && \
echo -e "\e[93m**** Configure a nice zsh environment ****\e[38;5;241m" && \
git clone --recursive https://github.com/sorin-ionescu/prezto.git "$HOME/.zprezto" && \
zsh -c /tmp/initzsh.sh && \
sed -i -e "s/zstyle ':prezto:module:prompt' theme 'sorin'/zstyle ':prezto:module:prompt' theme 'powerlevel10k'/" $HOME/.zpreztorc && \
echo "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh" >> $HOME/.zshrc && \
echo "PATH=/opt/bin:$PATH" >> $HOME/.zshrc && \
fix-permissions $CONDA_DIR && \
fix-permissions /home/$NB_USER
## Enable Java Early Access
#COPY kernel.json /opt/conda/share/jupyter/kernels/java/kernel.json
# Adds IJava Jupyter Kernel Personnal Magics
ADD magics /magics
ENV IJAVA_COMPILER_OPTS="-deprecation -Xlint -XprintProcessorInfo -XprintRounds --enable-preview --release 17"
ENV IJAVA_CLASSPATH="${HOME}/lib/*.jar:/usr/local/bin/*.jar"
ENV IJAVA_STARTUP_SCRIPTS_PATH="/magics/*"
RUN echo -e "\e[93m**** Installs SDKMan, Java JDKs and Maven3 ****\e[38;5;241m"
# Tool to easily install java dev tools with sdkman
# Install latest java jdk LTS
# Install the latest mvn 3
RUN curl -s "https://get.sdkman.io" | bash && \
echo "sdkman_auto_answer=true" > $HOME/.sdkman/etc/config && \
source "$HOME/.sdkman/bin/sdkman-init.sh" && \
sdk install java && \
sdk install maven && \
sdk flush && \
groupadd sdk && \
chgrp -R sdk $SDKMAN_DIR &&\
chmod 770 -R $SDKMAN_DIR && \
adduser $NB_USER sdk && \
sdk flush && \
sdk flush broadcast && \
fix-permissions /home/$NB_USER/.sdkman
RUN echo \
"<settings xmlns='http://maven.apache.org/SETTINGS/1.2.0' \
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' \
xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd'> \
<localRepository>\${user.home}/work/.m2/repository</localRepository> \
</settings>" \
> $HOME/.sdkman/candidates/maven/current/conf/settings.xml && \
ENV NEEDED_WORK_DIRS "$NEEDED_WORK_DIRS .m2"
RUN echo '#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!' >> $HOME/.zshenv && \
echo 'export SDKMAN_DIR="$HOME/.sdkman"' >> $HOME/.zshenv && \
echo '[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"' >> $HOME/.zshenv
SHELL ["/bin/zsh","-l","-c"]
# Install PlantUML
RUN curl -L https://sourceforge.net/projects/plantuml/files/plantuml.${PLANTUML_VERSION}.jar/download -o /usr/local/bin/plantuml.jar && \
echo "$PLANTUML_SHA1 */usr/local/bin/plantuml.jar" | sha1sum -c -
# Adds Java and Maven to the user path
ENV PATH=/home/jovyan/.sdkman/candidates/maven/current/bin:/home/jovyan/.sdkman/candidates/java/current/bin:$PATH
USER $NB_UID
build.sh 0 → 100755
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
. ${DIR}/env.sh
docker build \
--file Dockerfile \
-t ${BASE}:$SHA \
`[[ "$BRANCH" != "master" ]] && echo -t ${BASE}:$BRANCH` \
`[[ "$BRANCH" == "master" ]] && echo -t ${BASE}:latest` \
.
env.sh 0 → 100755
#!/bin/bash
REGISTRY=brunoe
IMAGE_NAME=${PWD##*/}
CURRENT=`pwd`
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd $DIR
BASE=${REGISTRY}/${IMAGE_NAME}
BRANCH=`git rev-parse --abbrev-ref HEAD|tr '/' '_' `
SHA=`git log -1 --pretty=%h`
cd $CURRENT
push.sh 0 → 100755
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
echo $DIR
. ${DIR}/env.sh
BASE=${REGISTRY}/${IMAGE_NAME}
BRANCH=`git rev-parse --abbrev-ref HEAD`
echo Branche:$BRANCH
docker push ${BASE} --all-tags
run.sh 0 → 100755
#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
. ${DIR}/env.sh
docker run --rm \
--name ${PWD##*/} \
--volume $PWD/work:/home/jovyan/work \
--publish 8888:8888 \
--env NB_UID=$UID \
--env JUPYTER_ENABLE_LAB=yes \
--env GRANT_SUDO=yes \
--env NB_GID=100 \
${BASE}:$SHA
#--env CHOWN_HOME_OPTS='-R' --env CHOWN_HOME=yes \
#!/bin/zsh
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment