# Create image based on Ubuntu 18.04 LTS (Bionic)
FROM ubuntu:18.04

MAINTAINER Leonhard Spiegelberg "leonhard_spiegelberg@brown.edu"

# general packages
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
    apt-utils gdb gdbserver rsync vim openssh-server

# use install reqs script
ADD install_reqs.sh /root/install_reqs.sh
RUN chmod 700 /root/install_reqs.sh
RUN bash /root/install_reqs.sh

# add SSH key
RUN mkdir -p /root/.ssh/

# make docker ready for running gdbserver and ssh
# taken from https://github.com/shuhaoliu/docker-clion-dev/blob/master/Dockerfile

RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

# 22 for ssh server. 7777 for gdb server.
EXPOSE 22 7777

RUN useradd -ms /bin/bash debugger
RUN echo 'debugger:pwd' | chpasswd

# start ssh server
CMD ["/usr/sbin/sshd", "-D"]
