Files
bildverarbeitungss18-hausau…/docker_build.sh
2018-04-18 17:40:37 +02:00

85 lines
2.2 KiB
Bash
Executable File

#! /usr/bin/env bash
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
echo "Usage: docker_build.sh"
echo "Builds a docker image with a user that matches the username and uid of the host user."
fi
uid=$(id -u)
username=$(whoami)
password='password' # dummy password
out="Dockerfile"
if [ "$1" == "sample" ]; then
out="Dockerfile.sample"
uid="1000"
username="user"
fi
echo "Using username: $username with uid: $uid"
echo "The default password is: $password"
cat << EOF > $out
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y zsh \\
locales \\
vim \\
tmux \\
git \\
python3-numpy \\
python3-scipy \\
python3-matplotlib \\
ipython3 \\
python3-pip \\
python-pillow \\
python-pip \\
python-numpy \\
python-scipy \\
python-matplotlib \\
ipython \\
python-pil \\
python-pillow \\
python-pip
ENV LC_ALL en_US.UTF-8
RUN locale-gen en_US.UTF-8
RUN pip install --upgrade pip
RUN pip3 install jupyter scikit-image ipykernel
RUN ipython3 kernel install
RUN ipython kernel install
# Use the same gid and uid as your user on the host system. You can find them
# out with the id programm. This way the file ownership in mapped directories is
# consistent with the host system.
RUN echo "%sudo ALL=(ALL) ALL" >> /etc/sudoers
RUN groupadd --gid $uid $username
RUN useradd --uid $uid --gid $username \\
--home-dir /home/$username --shell /usr/bin/bash \\
--groups sudo,$username \\
--password $password \\
$username
# set default passwords
RUN echo $username:$password | chpasswd && \\
echo root:$password | chpasswd
RUN mkdir -p /home/$username && chown -R $username:$username /home/$username
USER $username
WORKDIR /home/$username
RUN echo "PATH=$PATH:/usr/local/bin:~/.local/bin/" > /home/$username/.bashrc
CMD ["sh", "-c", "jupyter notebook --ip 0.0.0.0"]
EOF
if [ "$1" != "sample" ]; then
docker build -t 'image_processing_ss18' .
fi