85 lines
2.2 KiB
Bash
Executable File
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
|