diff --git a/Dockerfile b/Dockerfile index 08910a6..6b57444 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,78 +1,103 @@ FROM ubuntu:16.04 -#======================= -# General Configuration -#======================= ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update -y - -#===================================== -# Install virtual display framebuffer -#===================================== -RUN apt-get install xvfb x11vnc -y - -#========================================================= -# Install Windows Manager, Debian Menu, Numpy and Netstat -# https://github.com/novnc/websockify/issues/77 -#========================================================= -RUN apt-get install openbox menu python-numpy net-tools -y - -#==================== -# Install Supervisor -#==================== -RUN apt-get install supervisor -y #============= # Set WORKDIR #============= WORKDIR /root +#================== +# General Packages +#------------------ +# git +# Clone git repository +# wget +# Network downloader +# unzip +# Unzip zip file +# curl +# Transfer data from or to a server +# supervisor +# Process manager +# openjdk-8-jdk +# Java +# libqt5webkit5 +# Web content engine (Fix issue in Android) +#------------------ +# NoVNC Packages +#------------------ +# xvfb +# X virtual framebuffer +# x11vnc +# VNC server for X display +# openbox +# Windows manager +# menu +# Debian menu +# python-numpy +# Numpy, For faster performance: https://github.com/novnc/websockify/issues/77 +# net-tools +# Netstat +#------------------ +# KVM Package +# for emulator x86 +# https://help.ubuntu.com/community/KVM/Installation +#------------------ +# qemu-kvm +# libvirt-bin +# ubuntu-vm-builder +# bridge-utils +#================== +RUN apt-get update && apt-get install -y \ + git \ + wget \ + unzip \ + curl \ + supervisor \ + openjdk-8-jdk \ + libqt5webkit5 \ + xvfb \ + x11vnc \ + openbox \ + menu \ + python-numpy \ + net-tools \ + qemu-kvm \ + libvirt-bin \ + ubuntu-vm-builder \ + bridge-utils \ + && rm -rf /var/lib/apt/lists/* + #====================== # Clone noVNC projects #====================== -RUN apt-get install git -y -RUN git clone https://github.com/kanaka/noVNC.git && \ - cd noVNC/utils && git clone https://github.com/kanaka/websockify websockify +RUN git clone https://github.com/kanaka/noVNC.git \ + && cd noVNC/utils && git clone https://github.com/kanaka/websockify websockify -#============== -# Install Java -#============== -RUN apt-get install openjdk-8-jdk -y -ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre" -ENV PATH="${PATH}:${JAVA_HOME}/bin" +#====================================== +# Install Android SDK and its packages +#====================================== +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre +ENV PATH ${PATH}:${JAVA_HOME}/bin -#===================== -# Install Android SDK -#===================== -RUN apt-get install wget unzip libqt5webkit5 -y - -RUN wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip && \ - unzip tools_r25.2.3-linux.zip && rm tools_r25.2.3-linux.zip -ENV ANDROID_HOME="/root" -ENV PATH="${PATH}:${ANDROID_HOME}/tools" - -#===================================================== -# Install Platform-tools, Build-tools -# To see list of available packages: android list sdk -#===================================================== -RUN echo y | android update sdk --no-ui --filter platform-tools,build-tools-25.0.2 -ENV PATH="${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools" +ENV SDK_VERSION=25.2.3 \ + BUILD_TOOL=25.0.2 \ + ANDROID_HOME=/root +RUN wget -O android.zip https://dl.google.com/android/repository/tools_r${SDK_VERSION}-linux.zip \ + && unzip android.zip && rm android.zip +ENV PATH ${PATH}:${ANDROID_HOME}/tools +RUN echo y | android update sdk --no-ui --filter platform-tools,build-tools-${BUILD_TOOL} +ENV PATH ${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools RUN mv ${ANDROID_HOME}/tools/emulator ${ANDROID_HOME}/tools/emulator.backup #==================================== # Install latest nodejs, npm, appium #==================================== -RUN apt-get install curl -y -RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - -RUN apt-get install nodejs -y +RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - \ + && apt-get update && apt-get install -y nodejs && rm -rf /var/lib/apt/lists/* ENV APPIUM_VERSION 1.6.3 -RUN npm install -g appium@$APPIUM_VERSION - -#============================================================ -# Install KVM for emulator x86 -# Source: https://help.ubuntu.com/community/KVM/Installation -#============================================================ -RUN apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils -y +RUN npm install -g appium@$APPIUM_VERSION && npm cache clean #================================================ # noVNC Default Configurations @@ -89,11 +114,15 @@ ENV DISPLAY=:0 \ LOG_PATH=/var/log/supervisor RUN ln -s noVNC/vnc_auto.html noVNC/index.html -#============== +#=============== # Expose Ports -#============== -EXPOSE 4723 -EXPOSE 6080 +#--------------- +# 4723 +# appium port +# 6080 +# noVNC port +#=============== +EXPOSE 4723 6080 #================== # Add Browser APKs