# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

FROM ubuntu:trusty

MAINTAINER Daniel Kuppitz <me@gremlin.guru>

#RUN echo "Acquire::http::proxy \"http://172.17.0.1:3128/\";" >> /etc/apt/apt.conf
#RUN echo "Acquire::https::proxy \"https://172.17.0.1:3128/\";" >> /etc/apt/apt.conf

ENV http_proxy http://172.17.0.1:3128/ 
ENV https_proxy http://172.17.0.1:3128/ 

RUN apt-get update \
    && apt-get -y install software-properties-common python-software-properties apt-transport-https \
    && sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list' \
    && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 \
    && apt-get update \
    && apt-get install -y curl gawk git maven openssh-server subversion zip \
    && sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg' \
    && apt-get install -y --force-yes dotnet-sdk-2.1.101 python python-dev python-pip build-essential \
    && pip install virtualenv virtualenvwrapper \
    && pip install --upgrade pip \
    && rm -rf /var/lib/apt/lists/* /var/cache/oracle-jdk8-installer

# undo proxy
ENV http_proxy ""
ENV https_proxy ""

RUN mkdir -p /usr/lib/jvm \
    && cd /usr/lib/jvm \
    && curl --output jdk-8u161-linux-x64.tar.gz "http://172.17.0.1:8081/artifactory/binaries/jdk-8u161-linux-x64.tar.gz" \
    && tar zxvf jdk-8u161-linux-x64.tar.gz \
    && mv jdk1.8.0_161 java-8-oracle
RUN update-alternatives --install /usr/bin/appletviewer appletviewer /usr/lib/jvm/java-8-oracle/bin/appletviewer 110
RUN update-alternatives --install /usr/bin/ControlPanel ControlPanel /usr/lib/jvm/java-8-oracle/bin/ControlPanel 110
RUN update-alternatives --install /usr/bin/extcheck extcheck /usr/lib/jvm/java-8-oracle/bin/extcheck 110
RUN update-alternatives --install /usr/bin/idlj idlj /usr/lib/jvm/java-8-oracle/bin/idlj 110
RUN update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-8-oracle/bin/jar 110
RUN update-alternatives --install /usr/bin/jarsigner jarsigner /usr/lib/jvm/java-8-oracle/bin/jarsigner 110
RUN update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-oracle/bin/java 110
RUN update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-oracle/bin/javac 110
RUN update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-8-oracle/bin/javadoc 110
RUN update-alternatives --install /usr/bin/javafxpackager javafxpackager /usr/lib/jvm/java-8-oracle/bin/javafxpackager 110
RUN update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-8-oracle/bin/javah 110
RUN update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-8-oracle/bin/javap 110
RUN update-alternatives --install /usr/bin/javapackager javapackager /usr/lib/jvm/java-8-oracle/bin/javapackager 110
RUN update-alternatives --install /usr/bin/java-rmi.cgi java-rmi.cgi /usr/lib/jvm/java-8-oracle/bin/java-rmi.cgi 110
RUN update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/java-8-oracle/bin/javaws 110
RUN update-alternatives --install /usr/bin/jcmd jcmd /usr/lib/jvm/java-8-oracle/bin/jcmd 110
RUN update-alternatives --install /usr/bin/jconsole jconsole /usr/lib/jvm/java-8-oracle/bin/jconsole 110
RUN update-alternatives --install /usr/bin/jcontrol jcontrol /usr/lib/jvm/java-8-oracle/bin/jcontrol 110
RUN update-alternatives --install /usr/bin/jdb jdb /usr/lib/jvm/java-8-oracle/bin/jdb 110
RUN update-alternatives --install /usr/bin/jdeps jdeps /usr/lib/jvm/java-8-oracle/bin/jdeps 110
RUN update-alternatives --install /usr/bin/jhat jhat /usr/lib/jvm/java-8-oracle/bin/jhat 110
RUN update-alternatives --install /usr/bin/jinfo jinfo /usr/lib/jvm/java-8-oracle/bin/jinfo 110
RUN update-alternatives --install /usr/bin/jjs jjs /usr/lib/jvm/java-8-oracle/bin/jjs 110
RUN update-alternatives --install /usr/bin/jmap jmap /usr/lib/jvm/java-8-oracle/bin/jmap 110
RUN update-alternatives --install /usr/bin/jmc jmc /usr/lib/jvm/java-8-oracle/bin/jmc 110
RUN update-alternatives --install /usr/bin/jmc.ini jmc.ini /usr/lib/jvm/java-8-oracle/bin/jmc.ini 110
RUN update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/java-8-oracle/bin/jps 110
RUN update-alternatives --install /usr/bin/jrunscript jrunscript /usr/lib/jvm/java-8-oracle/bin/jrunscript 110
RUN update-alternatives --install /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/java-8-oracle/bin/jsadebugd 110
RUN update-alternatives --install /usr/bin/jstack jstack /usr/lib/jvm/java-8-oracle/bin/jstack 110
RUN update-alternatives --install /usr/bin/jstat jstat /usr/lib/jvm/java-8-oracle/bin/jstat 110
RUN update-alternatives --install /usr/bin/jstatd jstatd /usr/lib/jvm/java-8-oracle/bin/jstatd 110
RUN update-alternatives --install /usr/bin/jvisualvm jvisualvm /usr/lib/jvm/java-8-oracle/bin/jvisualvm 110
RUN update-alternatives --install /usr/bin/keytool keytool /usr/lib/jvm/java-8-oracle/bin/keytool 110
RUN update-alternatives --install /usr/bin/native2ascii native2ascii /usr/lib/jvm/java-8-oracle/bin/native2ascii 110
RUN update-alternatives --install /usr/bin/orbd orbd /usr/lib/jvm/java-8-oracle/bin/orbd 110
RUN update-alternatives --install /usr/bin/pack200 pack200 /usr/lib/jvm/java-8-oracle/bin/pack200 110
RUN update-alternatives --install /usr/bin/policytool policytool /usr/lib/jvm/java-8-oracle/bin/policytool 110
RUN update-alternatives --install /usr/bin/rmic rmic /usr/lib/jvm/java-8-oracle/bin/rmic 110
RUN update-alternatives --install /usr/bin/rmid rmid /usr/lib/jvm/java-8-oracle/bin/rmid 110
RUN update-alternatives --install /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/java-8-oracle/bin/rmiregistry 110
RUN update-alternatives --install /usr/bin/schemagen schemagen /usr/lib/jvm/java-8-oracle/bin/schemagen 110
RUN update-alternatives --install /usr/bin/serialver serialver /usr/lib/jvm/java-8-oracle/bin/serialver 110
RUN update-alternatives --install /usr/bin/servertool servertool /usr/lib/jvm/java-8-oracle/bin/servertool 110
RUN update-alternatives --install /usr/bin/tnameserv tnameserv /usr/lib/jvm/java-8-oracle/bin/tnameserv 110
RUN update-alternatives --install /usr/bin/unpack200 unpack200 /usr/lib/jvm/java-8-oracle/bin/unpack200 110
RUN update-alternatives --install /usr/bin/wsgen wsgen /usr/lib/jvm/java-8-oracle/bin/wsgen 110
RUN update-alternatives --install /usr/bin/wsimport wsimport /usr/lib/jvm/java-8-oracle/bin/wsimport 110
RUN update-alternatives --install /usr/bin/xjc xjc /usr/lib/jvm/java-8-oracle/bin/xjc 110


RUN sed -i 's@PermitRootLogin without-password@PermitRootLogin yes@' /etc/ssh/sshd_config
RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuuid.so@g' /etc/pam.d/sshd
RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -N '' \
    && cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

RUN sed -i 's/.*"$PS1".*/# \0/' ~/.bashrc
RUN echo "export JAVA_HOME=${JAVA_HOME}" >> ~/.bashrc

RUN echo "Host *" >> ~/.ssh/config
RUN echo "  UserKnownHostsFile /dev/null" >> ~/.ssh/config
RUN echo "  StrictHostKeyChecking no" >> ~/.ssh/config

