IntelliJ i Docker

Her vil jeg vise hvordan man kan køre en IDE igennem Docker. Vi vil bruge X11 til at tegne på docker-hosten.

Her ses Dockerfile filen der beskriver vores image.

FROM fedora:21
MAINTAINER Henrik Hoegh

#Update system
RUN yum update -y

#Install nessesary software and optional tools
RUN yum install libXext libXrender wget tar git maven -y

#Download JDK from Oracle, and install the rpm, and remove it afterwards
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm && rpm -ivh jdk-8u40-linux-x64.rpm && rm jdk-8u40-linux-x64.rpm

#Download Open JDK instead...
##RUN yum install java-1.8.0-openjdk.x86_64 -y
#

#Download IntelliJ Ultimate edition:
#RUN wget http://download.jetbrains.com/idea/ideaIU-14.1.1.tar.gz && tar xvzf ideaIU-14.1.1.tar.gz && rm -f ideaIU-14.1.1.tar.gz
#ENV PATH /idea-IU-141.178.9/bin:$PATH

#Download IntelliJ Community edition:
RUN wget http://download.jetbrains.com/idea/ideaIC-14.1.1.tar.gz && tar xvzf ideaIC-14.1.1.tar.gz && rm -f ideaIC-14.1.1.tar.gz
ENV PATH /idea-IC-141.178.9/bin:$PATH

# Define mount point to access data on host system.
VOLUME ["/workspace"]
VOLUME ["/idea-IU-141.178.9"]

# Execute idea start script to launch it.
ENTRYPOINT ["idea.sh"]

Vi kan starte ovenstående Dockerfile via følgende script

if [ -f /etc/redhat-release ]; then
        sudo setenforce 0
fi
docker build -t intelligj .
docker run --net=host -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/workspaces:/workspace -v ~/.idea:/idea intelligj

Nu bør IntelliJ starte op inde i din Docker kontainer, men blive vist på din Host igennem X. En hurtig, nem og smart måde at håndtere sin IDE. I et udviklings-team er der nu nemt at distribuere en IDE der er sat op til projektets krav. Folk laver bare et pull, og kører det uden at installere noget. Skal det opdateres, er der én der gør det og pusher det til ens registry med et nyt tag.

Jeg har givet mulighed for både at bruge Community samt Ultimate edition. Som standard hentes Community udgaven, men ved at udkommentere Ultimate, og kommentere Community, hentes Ultimate istedet.

Skriv et svar

Din e-mailadresse vil ikke blive offentliggjort. Krævede felter er markeret med *