aboutsummaryrefslogtreecommitdiff
path: root/intellij-idea
diff options
context:
space:
mode:
authorMike Crute <crutem@amazon.com>2017-06-29 08:33:56 -0700
committerMike Crute <crutem@amazon.com>2017-06-29 08:33:56 -0700
commitd38dd247f4ca2872655581428239077f71399b4e (patch)
tree463b8d6012b9dff65e506c534ffa066a0a59dcdd /intellij-idea
parent3f7e389b5aea056a23b899bbcde3307b0b6feed0 (diff)
downloaddockerfiles-d38dd247f4ca2872655581428239077f71399b4e.tar.bz2
dockerfiles-d38dd247f4ca2872655581428239077f71399b4e.tar.xz
dockerfiles-d38dd247f4ca2872655581428239077f71399b4e.zip
Add intellij idea
Diffstat (limited to 'intellij-idea')
-rw-r--r--intellij-idea/Dockerfile31
-rw-r--r--intellij-idea/Makefile17
-rwxr-xr-xintellij-idea/run28
3 files changed, 76 insertions, 0 deletions
diff --git a/intellij-idea/Dockerfile b/intellij-idea/Dockerfile
new file mode 100644
index 0000000..3da5b0d
--- /dev/null
+++ b/intellij-idea/Dockerfile
@@ -0,0 +1,31 @@
1FROM ubuntu:16.04
2
3ARG idea_version
4
5RUN export DEBIAN_FRONTEND=noninteractive && \
6# Get core requirements
7 apt-get update && \
8 apt-get install -y apt-utils curl && \
9
10# Setup user account
11 groupadd -g 1677955 crutem && \
12 useradd -m -d /home/crutem -g crutem -u 1677955 crutem && \
13
14# Install software
15 apt-get update && \
16 apt-get install -y openjdk-8-jdk && \
17 mkdir -p /usr/local/idea && \
18 cd /tmp && \
19 curl -LO https://download.jetbrains.com/idea/ideaIU-${idea_version}.tar.gz && \
20 tar -C /usr/local/idea --strip-components=1 -xvzf ideaIU-${idea_version}.tar.gz && \
21
22# Cleanup
23 apt-get clean && \
24 rm -rf /var/lib/apt/lists/* && \
25 rm -rf /tmp/*
26
27USER crutem
28ENV LANG C.UTF-8
29WORKDIR /home/crutem
30
31CMD ["/usr/local/idea/bin/idea.sh"]
diff --git a/intellij-idea/Makefile b/intellij-idea/Makefile
new file mode 100644
index 0000000..598366f
--- /dev/null
+++ b/intellij-idea/Makefile
@@ -0,0 +1,17 @@
1IMAGE=intellij-idea:latest
2VERSION=2017.1.4
3REPO=575365190010.dkr.ecr.us-west-2.amazonaws.com
4
5all:
6 docker build --build-arg=idea_version=$(VERSION) -t $(IMAGE) .
7
8all-no-cache:
9 docker build --no-cache --build-arg=idea_version=$(VERSION) -t $(IMAGE) .
10
11run:
12 ./run
13
14publish:
15 eval $$(aws ecr get-login --region us-west-2)
16 docker tag $(IMAGE) $(REPO)/$(IMAGE)
17 docker push $(REPO)/$(IMAGE)
diff --git a/intellij-idea/run b/intellij-idea/run
new file mode 100755
index 0000000..9b8a576
--- /dev/null
+++ b/intellij-idea/run
@@ -0,0 +1,28 @@
1#!/bin/bash
2
3if [ -z "$DISPLAY" ]; then
4 echo "\$DISPLAY is not set"
5 DISPLAYS=( $(netstat -lnt | awk '/127.0.0.1:60/ { split($4,a,":"); print "localhost:" substr(a[2],3) ".0" }') )
6
7 if [ "${#DISPLAYS[@]}" = 0 ]; then
8 echo "No X11 ports available"
9 exit 1
10 fi
11
12 if [ "${#DISPLAYS[@]}" > 1 ]; then
13 echo "More than 1 X11 port available. Which one do you want?"
14 for i in "${DISPLAYS[@]}"; do
15 echo "export DISPLAY=\"$i\""
16 done
17 exit 1
18 else
19 export DISPLAY="${DISPLAYS[0]}"
20 fi
21fi
22
23docker run -ti --rm --net=host \
24 -e DISPLAY \
25 -e XAUTHORITY=$HOME/.Xauthority \
26 -v /usr/share/zoneinfo/America/Los_Angeles:/etc/localtime:ro \
27 -v $HOME:$HOME \
28 intellij-idea "$@"