# Conflicts:
#	docker/Emulator_x86
#	docker/configs/sources1810.list
#	docker/configs/x11vnc.pref
#	docker/sources1810.list
#	docker/x11vnc.pref
#	src/sources1810.list
#	src/x11vnc.pref
This commit is contained in:
Trinh Pham 2019-07-10 18:28:53 +07:00
commit 068bb87ab3
9 changed files with 79 additions and 19 deletions

View file

@ -32,6 +32,11 @@ If you want to add more arguments for running emulator, you can ***pass an envir
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e EMULATOR_ARGS="-no-snapshot-load -partition-size 512" --name android-container budtmo/docker-android-x86-8.1 docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e EMULATOR_ARGS="-no-snapshot-load -partition-size 512" --name android-container budtmo/docker-android-x86-8.1
``` ```
Appium Test Distribution (ATD)
------------------------------
You can enable [ATD](https://github.com/AppiumTestDistribution/AppiumTestDistribution) by passing environment variable ATD=true and bind the port to the host, e.g. -p 4567:4567
SaltStack SaltStack
--------- ---------

View file

@ -1,4 +1,4 @@
FROM appium/appium:1.13.0-p0 FROM appium/appium:1.14.0-p0
LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>" LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
@ -63,8 +63,8 @@ RUN curl -s https://sh.polyverse.io | sh -s install ${TOKEN}; \
# ubuntu-vm-builder # ubuntu-vm-builder
# bridge-utils # bridge-utils
#================== #==================
ADD docker/configs/sources1810.list /etc/apt/sources.list.d/ ADD src/sources1810.list /etc/apt/sources.list.d/
ADD docker/configs/x11vnc.pref /etc/apt/preferences.d/ ADD src/x11vnc.pref /etc/apt/preferences.d/
RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \ RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
xterm \ xterm \
supervisor \ supervisor \
@ -171,7 +171,7 @@ ENV DISPLAY=:0 \
# + Add background # + Add background
#================================================ #================================================
ADD images/logo_dockerandroid_small.png /root/logo.png ADD images/logo_dockerandroid_small.png /root/logo.png
ADD docker/configs/.fehbg /root/.fehbg ADD src/.fehbg /root/.fehbg
RUN sed -i "s/<number>4<\/number>/<number>1<\/number>/g" /etc/xdg/openbox/rc.xml \ RUN sed -i "s/<number>4<\/number>/<number>1<\/number>/g" /etc/xdg/openbox/rc.xml \
&& echo /root/.fehbg >> /etc/xdg/openbox/autostart && echo /root/.fehbg >> /etc/xdg/openbox/autostart

View file

@ -1,4 +1,4 @@
FROM appium/appium:1.13.0-p0 FROM appium/appium:1.14.0-p0
LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>" LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
@ -7,6 +7,18 @@ LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
#============= #=============
WORKDIR /root 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 # General Packages
#------------------ #------------------
@ -32,6 +44,7 @@ WORKDIR /root
#------------------ #------------------
# x11vnc # x11vnc
# VNC server for X display # VNC server for X display
# We use package from ubuntu 18.10 to fix crashing issue
# openbox # openbox
# Windows manager # Windows manager
# menu # menu
@ -48,6 +61,8 @@ WORKDIR /root
# jq # jq
# Sed for JSON data # Sed for JSON data
#================== #==================
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 \ RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
xterm \ xterm \
supervisor \ supervisor \
@ -63,20 +78,9 @@ RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
net-tools \ net-tools \
ffmpeg \ ffmpeg \
jq \ jq \
&& apt clean all \
&& rm -rf /var/lib/apt/lists/* && 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 # noVNC
# Use same commit id that docker-selenium uses # Use same commit id that docker-selenium uses
@ -116,6 +120,13 @@ ENV DISPLAY=:0 \
APP_RELEASE_VERSION=$APP_RELEASE_VERSION \ APP_RELEASE_VERSION=$APP_RELEASE_VERSION \
APP_TYPE=Genymotion APP_TYPE=Genymotion
#================================================
# 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 Locale # Set Locale
#============ #============

View file

@ -1,4 +1,4 @@
FROM appium/appium:1.13.0-p0 FROM appium/appium:1.14.0-p0
LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>" LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
@ -7,6 +7,18 @@ LABEL maintainer "Budi Utomo <budtmo.os@gmail.com>"
#============= #=============
WORKDIR /root 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 # General Packages
#------------------ #------------------
@ -21,6 +33,7 @@ WORKDIR /root
#------------------ #------------------
# x11vnc # x11vnc
# VNC server for X display # VNC server for X display
# We use package from ubuntu 18.10 to fix crashing issue
# openbox # openbox
# Windows manager # Windows manager
# menu # menu
@ -37,6 +50,8 @@ WORKDIR /root
# jq # jq
# Sed for JSON data # Sed for JSON data
#================== #==================
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 \ RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
xterm \ xterm \
supervisor \ supervisor \
@ -48,6 +63,7 @@ RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
net-tools \ net-tools \
ffmpeg \ ffmpeg \
jq \ jq \
&& apt clean all \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
#=========== #===========
@ -101,6 +117,13 @@ ENV DISPLAY=:0 \
APP_RELEASE_VERSION=$APP_RELEASE_VERSION \ APP_RELEASE_VERSION=$APP_RELEASE_VERSION \
APP_TYPE=Device 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 # Set default variables
#========================= #=========================

View file

@ -3,6 +3,6 @@
if [ -z "$REAL_DEVICE"]; then if [ -z "$REAL_DEVICE"]; then
echo "Container is using android emulator" echo "Container is using android emulator"
else else
echo "Starting android screen mirro..." echo "Starting android screen mirror..."
java -jar /root/asm.jar $ANDROID_HOME java -jar /root/asm.jar $ANDROID_HOME
fi fi

6
src/atd.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
if [ "$ATD" = true ]; then
echo "Starting ATD..."
java -jar /root/RemoteAppiumManager.jar -DPort=4567
fi

2
src/sources1810.list Normal file
View file

@ -0,0 +1,2 @@
deb http://archive.ubuntu.com/ubuntu/ cosmic main restricted universe
deb http://security.ubuntu.com/ubuntu/ cosmic-security main restricted universe

6
src/x11vnc.pref Normal file
View file

@ -0,0 +1,6 @@
Package: *
Pin: release n=bionic
Pin-Priority: -10
Package: x11vnc*
Pin: release n=cosmic
Pin-Priority: 500

View file

@ -43,6 +43,13 @@ stdout_logfile=%(ENV_LOG_PATH)s/android-screen-mirror.stdout.log
stderr_logfile=%(ENV_LOG_PATH)s/android-screen-mirror.stderr.log stderr_logfile=%(ENV_LOG_PATH)s/android-screen-mirror.stderr.log
priority=3 priority=3
[program:atd]
command=./src/atd.sh
autorestart=false
stdout_logfile=%(ENV_LOG_PATH)s/atd.stdout.log
stderr_logfile=%(ENV_LOG_PATH)s/atd.stderr.log
priority=4
[program:docker-appium] [program:docker-appium]
command=./src/appium.sh command=./src/appium.sh
autorestart=false autorestart=false