diff --git a/image/Dockerfile b/image/Dockerfile index 730452f..749903f 100644 --- a/image/Dockerfile +++ b/image/Dockerfile @@ -1,159 +1,159 @@ FROM ubuntu:wily LABEL Description="KDE on Android SDK" MAINTAINER Andreas Cord-Landwehr ENV ADIR /opt/android RUN mkdir -p $ADIR # set ANDROID_* environment variables globally RUN echo "\n\ ANDROID_NDK=/opt/android/android-ndk-r10e\n\ ANDROID_SDK_ROOT=/opt/android/android-sdk-linux\n\ " >> /etc/environment # skeleton files that are used for all users RUN echo "\n\ export ADIR=$ADIR\n\ export Qt5_android=$ADIR/Qt5.6.0/5.6/android_armv7/\n\ export PATH=$ADIR/android-sdk-linux/platform-tools/:$PATH\n\ export ANT=/usr/bin/ant\n\ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/\n\ \n\ function cmakeandroid {\n\ - cmake \$@ -DCMAKE_INSTALL_PREFIX=$ADIR/kde/install -DCMAKE_PREFIX_PATH=\"$ADIR/Qt5.6.0/5.6/android_armv7/:$ADIR/kde/install\" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$ADIR/kde/install/share/ECM/toolchain/Android.cmake\n\ + cmake \$@ -DCMAKE_INSTALL_PREFIX=$ADIR/kde/install -DCMAKE_PREFIX_PATH=\"$ADIR/Qt5.6.0/5.6/android_armv7/;$ADIR/kde/install\" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$ADIR/kde/install/share/ECM/toolchain/Android.cmake\n\ }\n\ " >> /etc/skel/.bashrc RUN echo "deb [arch=armhf] http://ports.ubuntu.com/ wily main universe restricted\n\ deb-src [arch=armhf] http://ports.ubuntu.com/ wily main universe restricted\n\ \n\ deb [arch=armhf] http://ports.ubuntu.com/ wily-updates main universe restricted\n\ deb-src [arch=armhf] http://ports.ubuntu.com/ wily-updates main universe restricted\n\ \n\ deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu wily main universe restricted\n\ deb-src [arch=i386,amd64] http://archive.ubuntu.com/ubuntu wily main universe restricted\n\ \n\ deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu wily-updates main universe restricted\n\ deb-src [arch=i386,amd64] http://archive.ubuntu.com/ubuntu wily-updates main universe restricted\n\ " > /etc/apt/sources.list # enable verbose apt-get output RUN echo 'Debug::pkgProblemResolver "true";' > /etc/apt/apt.conf.d/debug RUN dpkg --add-architecture i386 && apt update && apt-get install -y \ ant \ build-essential \ cmake \ curl \ expect \ git \ # required for running kdesrc-build libxml-simple-perl \ libjson-perl \ openjdk-7-jdk \ openjdk-7-jre \ qt5-qmake \ ssh \ sudo \ # required for ki18n gettext \ # virtual framebuffer to provide X window for the Qt installer and unit tests xvfb \ # required for CI unit tests openbox \ # required i386 architecture libraries libgcc1:i386 \ libc6:i386 \ zlib1g:i386 \ # required for CI buildsystem python3-lxml \ python2.7 \ python-lxml \ gcovr RUN groupadd -g 1000 jenkins && \ useradd -m -u 1000 -g 1000 -d /home/jenkins jenkins && \ echo 'jenkins:jenkins' | chpasswd && \ echo "jenkins ALL=NOPASSWD:ALL" >> /etc/sudoers RUN addgroup builders && \ usermod -G builders jenkins RUN adduser kdeandroid --ingroup builders --gecos "" --disabled-password && \ echo "kdeandroid ALL=NOPASSWD:ALL" >> /etc/sudoers && \ chown -R kdeandroid:builders $ADIR # Enable SSH for CI RUN dpkg-reconfigure ssh && \ mkdir -p /var/run/sshd && chmod 744 /var/run/sshd # Open port for SSH EXPOSE 22 USER kdeandroid RUN echo "[url \"git://anongit.kde.org/\"]\n\ insteadOf = kde:\n\ [url \"ssh://git@git.kde.org/\"]\n\ pushInsteadOf = kde:\n\ " > /home/kdeandroid/.gitconfig # get SDK COPY accept-sdk-license.sh $ADIR/accept-sdk-license.sh RUN sudo chown kdeandroid:builders $ADIR/accept-sdk-license.sh && \ chmod +x $ADIR/accept-sdk-license.sh RUN echo "Download SDK..." && \ curl http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -o $ADIR/android-sdk.tgz && \ # unpack SDK echo "SDK: unpacking..." && \ tar xfl $ADIR/android-sdk.tgz -C $ADIR/ && \ echo "SDK: updating..." && \ $ADIR/accept-sdk-license.sh $ADIR && \ rm $ADIR/accept-sdk-license.sh && \ rm $ADIR/android-sdk.tgz && \ echo "SDK: done." # get NDK RUN echo "Download NDK..." && \ curl http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin -o $ADIR/android-ndk.bin && \ echo "NDK: unpacking..." && \ chmod +x $ADIR/android-ndk.bin && \ cd $ADIR && \ ./android-ndk.bin && \ cd / && \ rm $ADIR/android-ndk.bin && \ echo "NDK: done." #get Qt for Android RUN echo "Qt Installer: downloading..." && \ curl http://master.qt.io/archive/qt/5.6/5.6.0/qt-opensource-linux-x64-android-5.6.0.run -o $ADIR/qt-installer.run && \ chmod +x $ADIR/qt-installer.run COPY qtinstallerconfig.qs $ADIR/qtinstallerconfig.qs # run visual installer with simulated X window, filter out all warning messages due to not having a proper window RUN xvfb-run -a $ADIR/qt-installer.run --script $ADIR/qtinstallerconfig.qs|grep -v "Warning: QPainter" | grep -v "Warning: QWidget" && \ echo "Qt Installer: done." # cleanup RUN sudo apt-get remove -y\ expect \ curl && \ sudo apt-get autoremove -y && \ rm $ADIR/qt-installer.run && \ rm $ADIR/qtinstallerconfig.qs # get KDESRC build and android configurations RUN git clone git://anongit.kde.org/scratch/cordlandwehr/kdesrc-conf-android.git $ADIR/kdesrc-conf-android && \ mkdir -p $ADIR/extragear/kdesrc-build && \ git clone git://anongit.kde.org/kdesrc-build $ADIR/extragear/kdesrc-build && \ ln -s $ADIR/extragear/kdesrc-build/kdesrc-build $ADIR/kdesrc-build && \ ln -s $ADIR/kdesrc-conf-android/kdesrc-buildrc $ADIR/kdesrc-buildrc RUN cd $ADIR && \ ./kdesrc-build extra-cmake-modules RUN echo "Configuration finished, finalizing Docker image..." USER root CMD ["/usr/sbin/sshd", "-D"]