docker-full: java: setup needed environment variables
[nit.git] / misc / docker / full / Dockerfile
1 # This is a full install of Nit on a debian base.
2 # Full because most dependencies are installed so that most tests can be run
3
4 FROM nitlang/nit:latest
5 MAINTAINER Jean Privat <jean@pryen.org>
6
7 # Dependencies for more libs and tests
8 RUN dpkg --add-architecture i386 \
9         && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
10                 # Packages needed for lib/
11                 libcurl4-openssl-dev \
12                 libegl1-mesa-dev \
13                 libevent-dev \
14                 libgles1-mesa-dev \
15                 libgles2-mesa-dev \
16                 libgtk-3-dev \
17                 libgmp-dev \
18                 libncurses5-dev \
19                 libpq-dev \
20                 libreadline-dev \
21                 libsdl-image1.2-dev \
22                 libsdl-ttf2.0-dev \
23                 libsdl1.2-dev \
24                 libsdl2-dev \
25                 libsdl2-image-dev \
26                 libsdl2-mixer-dev \
27                 libsqlite3-dev \
28                 libx11-dev \
29                 libxdg-basedir-dev \
30                 postgresql \
31                 # Packages needed for contrib, platforms and FFI
32                 ant \
33                 clang \
34                 cmake \
35                 default-jdk \
36                 file \
37                 inkscape \
38                 libopenmpi-dev \
39                 unzip \
40                 # Android
41                 libc6:i386 \
42                 libstdc++6:i386 \
43                 zlib1g:i386 \
44                 # TODO neo4j emscripten test_glsl_validation
45         && rm -rf /var/lib/apt/lists/*
46
47 # Install android sdk/ndk
48 RUN mkdir -p /opt \
49         && cd /opt \
50         # Android SDK
51         && curl https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -o android-sdk-linux.tgz \
52         && tar xzf android-sdk-linux.tgz \
53         && rm android-sdk-linux.tgz \
54         && echo y | android-sdk-linux/tools/android update sdk -a --no-ui --filter \
55                 # Hardcode minimal known working things
56                 platform-tools,build-tools-22.0.1,android-22,android-21,android-19,android-16,android-15,android-10 \
57         # Android NDK
58         && curl http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip -o android-ndk.zip \
59         && unzip -q android-ndk.zip \
60         && chmod -R a+X /opt \
61         && ln -s android-ndk-r11c android-ndk \
62         && rm android-ndk.zip \
63         && printf "PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK\nexport PATH\n" >> "/etc/profile.d/android.sh"
64
65 # Install OpenGL validator
66 RUN git clone https://github.com/KhronosGroup/glslang.git \
67         && mkdir -p glslang/build \
68         && cd glslang/build \
69         && cmake .. \
70         && make \
71         && make
72
73 # Setup environment variables
74 ENV ANDROID_HOME /opt/android-sdk-linux
75 ENV ANDROID_NDK /opt/android-ndk
76 ENV PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK
77 ENV JAVA_HOME=/usr/lib/jvm/default-java/
78 ENV JNI_LIB_PATH=$JAVA_HOME/jre/lib/amd64/server/
79 ENV LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server/