123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- FROM ubuntu:18.04
- LABEL maintainer "Bernhard Buhl <info@baangt.org>"
- RUN echo "Europe/Rome" > /etc/timezone
- RUN apt-get update -q && \
- export DEBIAN_FRONTEND=noninteractive && \
- apt-get install -y --no-install-recommends tzdata
- RUN dpkg-reconfigure -f noninteractive tzdata
- # Install packages
- RUN apt-get update -q && \
- export DEBIAN_FRONTEND=noninteractive && \
- apt-get install -y --no-install-recommends software-properties-common && \
- add-apt-repository universe && \
- apt-get update -q && \
- apt-get remove -y python3.6 && \
- apt-get install -y --no-install-recommends wget curl rsync netcat mg vim bzip2 zip unzip && \
- apt-get install -y --no-install-recommends libx11-6 libxcb1 libxau6 jq python3-setuptools python3-tk && \
- apt-get install -y --no-install-recommends lxde tightvncserver xvfb dbus-x11 x11-utils && \
- apt-get install -y --no-install-recommends xfonts-base xfonts-75dpi xfonts-100dpi && \
- apt-get install -y --no-install-recommends python-pip python3.7-dev python-qt4 python3-pip tk-dev && \
- apt-get install -y --no-install-recommends libssl-dev git jq firefox && \
- apt-get install -y cpu-checker openjdk-8-jdk libglu1 libpulse-dev libasound2 libc6 \
- libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxi6 libxtst6 libnss3
- # Install Baangt
- RUN git clone -b master https://gogs.earthsquad.global/athos/baangt --single-branch && \
- pip3 install -r baangt/requirements.txt
- WORKDIR /root/
- # VNC-Server
- RUN mkdir -p /root/.vnc
- COPY xstartup /root/.vnc/
- RUN chmod a+x /root/.vnc/xstartup
- RUN touch /root/.vnc/passwd && \
- /bin/bash -c "echo -e 'password\npassword\nn' | vncpasswd" > /root/.vnc/passwd && \
- chmod 400 /root/.vnc/passwd && \
- chmod go-rwx /root/.vnc && \
- touch /root/.Xauthority
- COPY start-vncserver.sh /root/
- COPY baangt.sh /root/
- RUN chmod a+x /root/start-vncserver.sh && \
- chmod a+x /root/baangt.sh && \
- echo "mycontainer" > /etc/hostname && \
- echo "127.0.0.1 localhost" > /etc/hosts && \
- echo "127.0.0.1 mycontainer" >> /etc/hosts
- WORKDIR /baangt
- RUN mkdir /baangt/browserDrivers
- RUN python3 baangt.py --reloadDrivers=True
- EXPOSE 5901
- ENV USER root
- CMD [ "/root/start-vncserver.sh" ]
- #===============
- # Expose Ports
- #---------------
- # 4723
- # Appium port
- # 5554
- # Emulator port
- # 5555
- # ADB connection port
- #===============
- EXPOSE 4723 5554 5555
- # ===============================================================================
- # Alternative emulator installation from android-container Dockerfile from google
- # ===============================================================================
- WORKDIR /
- # gradle
- ENV GRADLE_USER_HOME=/cache
- VOLUME $GRADLE_USER_HOME
- # android
- # ARG ANDROID_EMULATOR_PACKAGE_ARM="system-images;android-25;google_apis;armeabi-v7a"
- ARG ANDROID_EMULATOR_PACKAGE_ARM="system-images;android-25;google_apis;armeabi-v7a"
- # ARG ANDROID_EMULATOR_PACKAGE_x86="system-images;android-R;google_apis;x86"
- ARG ANDROID_PLATFORM_VERSION="platforms;android-R"
- ARG ANDROID_SDK_VERSION="sdk-tools-linux-4333796.zip"
- # ARG ANDROID_SDK_VERSION="platform-tools_r29.0.6-linux.zip"
- # ARG ANDROID_SDK_VERSION="commandlinetools-linux-6200805_latest.zip" # Very bad version!
- # ARG ANDROID_SDK_VERSION="tools_r25.2.5-linux.zip" # works
- # ARG ANDROID_SDK_VERSION="tools_r25.2.5-linux.zip"
- # ARG ANDROID_SDK_PACKAGES="${ANDROID_EMULATOR_PACKAGE_ARM} ${ANDROID_EMULATOR_PACKAGE_x86} ${ANDROID_PLATFORM_VERSION} platform-tools emulator"
- ARG ANDROID_SDK_PACKAGES="${ANDROID_EMULATOR_PACKAGE_ARM} ${ANDROID_PLATFORM_VERSION} platform-tools emulator"
- RUN wget https://dl.google.com/android/repository/${ANDROID_SDK_VERSION} -P /tmp && \
- unzip -d /opt/android /tmp/${ANDROID_SDK_VERSION}
- ENV ANDROID_HOME=/opt/android
- ENV PATH "$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools"
- # sdkmanager
- RUN mkdir /root/.android/
- RUN touch /root/.android/repositories.cfg
- # This is to create an empty auth_token file, so that he doesn't bother me with password for Telnet requests
- RUN touch /root/.android/.emulator_console_auth_token
- RUN export ANDROID_HOME=$PWD/android-sdk-linux
- RUN yes Y | /opt/android/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses
- RUN yes Y | /opt/android/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --verbose --no_https ${ANDROID_SDK_PACKAGES}
- RUN yes Y | /opt/android/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --verbose --no_https "system-images;android-21;google_apis;armeabi-v7a"
- # avdmanager
- ENV GRADLE_VERSION=5.4.1
- ENV ANDROID_API_LEVEL=28
- ENV ANDROID_BUILD_TOOLS_LEVEL=28.0.3
- ENV EMULATOR_NAME=test
- #ENV EMULATOR_NAME_x86="android_x86"
- ENV EMULATOR_NAME_ARM="android_arm"
- ENV EMULATOR_NAME_SMALL="27inch"
- # RUN echo "no" | avdmanager --verbose create avd --force --name "${EMULATOR_NAME_x86}" --device "pixel" --package "${ANDROID_EMULATOR_PACKAGE_x86}"
- RUN echo "no" | avdmanager --verbose create avd --force --name "${EMULATOR_NAME_ARM}" --device "pixel" --package "${ANDROID_EMULATOR_PACKAGE_ARM}"
- RUN echo "no" | avdmanager --verbose create avd --force --name "${EMULATOR_NAME_SMALL}" --device 20 --package "${ANDROID_EMULATOR_PACKAGE_ARM}"
- # Make SD card
- WORKDIR /root/.android/avd/
- RUN mksdcard 32M sdcard.img
- WORKDIR /
- ENV LD_LIBRARY_PATH "$ANDROID_HOME/emulator/lib64:$ANDROID_HOME/emulator/lib64/qt/lib"
- ADD start.sh /
- RUN chmod +x start.sh
- # Now install appium
- RUN apt-get install -y --no-install-recommends npm nodejs telnet nano
- RUN npm install utf-8-validate bufferutil
- RUN npm install -g appium
- # Workaround for wrong baangt checkout
- WORKDIR /baangt
- RUN git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
- RUN git fetch origin
- RUN git checkout Appium
- RUN pip3 install -r requirements.txt
- # Make browsermob-proxy executable
- RUN chmod +x /baangt/browsermob-proxy/bin/browsermob-proxy
- EXPOSE 5901
- ENV USER root
- CMD [ "/root/start-vncserver.sh" ]
- # Notes
- # advmanager create avd --device 20 --package 'system-images;android-25;google_apis;armeabi_v7a' -n '27inch_arm" creates
- # a smaller device screen.
- # can be run with
- # sdkmanager --list gives list of available images. For this docker container, only *;armeabi-v7a seems to work
- # avdmanager list gives all available device listings.
- # avdmanager -device 20 is small, but seems too small. Got working older Android (_10, 21) but these don't have ADB enabled,
- # so not usable for appium
- # avdmanager -device 7 (Nexus 4)
|