docker-android/docker/Real_device

155 lines
3.9 KiB
Plaintext
Raw Normal View History

2019-07-10 08:35:17 +01:00
FROM appium/appium:1.14.0-p0
2019-02-21 17:01:38 +00:00
LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
#=============
# Set WORKDIR
#=============
WORKDIR /root
#===========
# 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
#==================
# General Packages
#------------------
# xterm
# Terminal emulator
# supervisor
# Process manager
# socat
# Port forwarder
#------------------
# NoVNC Packages
#------------------
# x11vnc
# VNC server for X display
# We use package from ubuntu 18.10 to fix crashing issue
# openbox
# Windows manager
# menu
# Debian menu
# python-numpy
# Numpy, For faster performance: https://github.com/novnc/websockify/issues/77
# net-tools
# Netstat
2017-07-14 19:40:14 +01:00
#------------------
# Video Recording
#------------------
# ffmpeg
# Video recorder
2017-10-27 20:00:10 +01:00
# jq
# Sed for JSON data
#==================
2019-07-10 08:35:17 +01:00
ADD src/sources1810.list /etc/apt/sources.list.d/
ADD src/x11vnc.pref /etc/apt/preferences.d/
RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
2018-05-12 12:13:21 +01:00
xterm \
supervisor \
socat \
x11vnc \
openbox \
menu \
python-numpy \
net-tools \
2017-07-14 19:40:14 +01:00
ffmpeg \
2017-10-27 20:00:10 +01:00
jq \
&& apt clean all \
&& rm -rf /var/lib/apt/lists/*
2019-05-06 12:33:13 +01:00
#===========
# 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
2018-02-12 09:49:26 +00:00
#================================================
# 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 \
2017-07-14 19:40:14 +01:00
VIDEO_PATH=/tmp/video \
LOG_PATH=/var/log/supervisor \
GA=true \
GA_ENDPOINT=https://www.google-analytics.com/collect \
2019-01-30 13:58:31 +00:00
GA_TRACKING_ID=UA-133466903-1 \
GA_API_VERSION="1" \
APP_RELEASE_VERSION=$APP_RELEASE_VERSION \
APP_TYPE=Device
#================================================
# openbox configuration
# Update the openbox configuration files to:
# + Use a single virtual desktop to prevent accidentally switching
#================================================
RUN sed -i "s/<number>4<\/number>/<number>1<\/number>/g" /etc/xdg/openbox/rc.xml
#=========================
# Set default variables
#=========================
2018-05-28 20:02:26 +01:00
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
#===================
2018-02-12 09:49:26 +00:00
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