FROM appium/appium:1.13.0-p0 LABEL maintainer "Budi Utomo " #============= # Set WORKDIR #============= WORKDIR /root #================== # General Packages #------------------ # xterm # Terminal emulator # supervisor # Process manager # socat # Port forwarder #------------------ # NoVNC Packages #------------------ # 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 #------------------ # Video Recording #------------------ # ffmpeg # Video recorder # jq # Sed for JSON data #================== RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \ xterm \ supervisor \ socat \ x11vnc \ openbox \ menu \ python-numpy \ net-tools \ ffmpeg \ jq \ && rm -rf /var/lib/apt/lists/* #=========== # Polyverse # https://polyverse.io/how-it-works/ #=========== ARG TOKEN=xxx RUN curl -s https://sh.polyverse.io | sh -s install ${TOKEN}; \ if [ $? -eq 0 ]; then \ apt -y update && \ apt-get -y install --reinstall $(dpkg --get-selections | awk '{print $1}'); \ fi #======= # noVNC # Use same commit id that docker-selenium uses # https://github.com/elgalu/docker-selenium/blob/236b861177bd2917d864e52291114b1f5e4540d7/Dockerfile#L412-L413 #======= ENV NOVNC_SHA="b403cb92fb8de82d04f305b4f14fa978003890d7" \ WEBSOCKIFY_SHA="558a6439f14b0d85a31145541745e25c255d576b" RUN wget -nv -O noVNC.zip "https://github.com/kanaka/noVNC/archive/${NOVNC_SHA}.zip" \ && unzip -x noVNC.zip \ && rm noVNC.zip \ && mv noVNC-${NOVNC_SHA} noVNC \ && wget -nv -O websockify.zip "https://github.com/kanaka/websockify/archive/${WEBSOCKIFY_SHA}.zip" \ && unzip -x websockify.zip \ && mv websockify-${WEBSOCKIFY_SHA} ./noVNC/utils/websockify \ && rm websockify.zip \ && ln noVNC/vnc_auto.html noVNC/index.html #================================================ # noVNC Default Configurations # These Configurations can be changed through -e #================================================ ARG APP_RELEASE_VERSION=1.5-p0 ENV DISPLAY=:0 \ SCREEN=0 \ SCREEN_WIDTH=1600 \ SCREEN_HEIGHT=900 \ SCREEN_DEPTH=16 \ LOCAL_PORT=5900 \ TARGET_PORT=6080 \ TIMEOUT=1 \ VIDEO_PATH=/tmp/video \ LOG_PATH=/var/log/supervisor \ GA=true \ GA_ENDPOINT=https://www.google-analytics.com/collect \ GA_TRACKING_ID=UA-133466903-1 \ GA_API_VERSION="1" \ APP_RELEASE_VERSION=$APP_RELEASE_VERSION \ APP_TYPE=Device #========================= # Set default variables #========================= ENV APPIUM_LOG=$LOG_PATH/appium.log ENV REAL_DEVICE=true ENV BROWSER=android #=============== # Expose Ports #--------------- # 4723 # Appium port # 6080 # noVNC port # 5555 # ADB connection port #=============== EXPOSE 4723 6080 5555 #=================== # Run docker-appium #=================== COPY sm/asm.jar /root/ COPY src /root/src COPY supervisord.conf /root/ RUN chmod -R +x /root/src && chmod +x /root/supervisord.conf CMD /usr/bin/supervisord --configuration supervisord.conf