mirror of
https://github.com/budtmo/docker-android.git
synced 2026-02-06 11:26:45 +00:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a28137f92f | ||
|
|
a46dcf1825 | ||
|
|
4459fffdb2 | ||
|
|
c47e5efdad | ||
|
|
149e55b52d | ||
|
|
f5e57eecef | ||
|
|
621d37d7d1 | ||
|
|
66fab80a5b | ||
|
|
97bd5ae254 | ||
|
|
b69020fc03 | ||
|
|
04da87e3e4 | ||
|
|
80134ce080 | ||
|
|
fbfe4a08d7 | ||
|
|
d03f14dadf | ||
|
|
4b64e87ab2 | ||
|
|
8f4b541d49 | ||
|
|
71f3fe64d6 |
@ -1,5 +1,7 @@
|
||||
# Git
|
||||
.git/
|
||||
.github
|
||||
.gitignore
|
||||
|
||||
# IDE
|
||||
**/*.idea
|
||||
@ -17,3 +19,10 @@ backup
|
||||
**/xunit.xml
|
||||
**/coverage
|
||||
tmp/
|
||||
|
||||
docker
|
||||
documentations
|
||||
example
|
||||
images
|
||||
*.md
|
||||
*.sh
|
||||
|
||||
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
||||
python-version: ["3.8"]
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Run unit-test
|
||||
run: script -e -c "./app.sh test emulator test 11.0 && sudo mv tmp/* ."
|
||||
@ -23,7 +23,7 @@ jobs:
|
||||
needs: run_test
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Get release version
|
||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
@ -42,7 +42,7 @@ jobs:
|
||||
android: ["9.0", "10.0", "11.0", "12.0", "13.0", "14.0"]
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
@ -67,7 +67,7 @@ jobs:
|
||||
needs: release_base
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
2
.github/workflows/test-on-demand.yml
vendored
2
.github/workflows/test-on-demand.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.actor == 'budtmo'
|
||||
steps:
|
||||
- name: Checkout the repo
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
@ -100,11 +100,15 @@ Credit goes to [Guillaume - The Parallel Interface blog](https://www.paralint.co
|
||||
```
|
||||
[boot]
|
||||
command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'
|
||||
```
|
||||
|
||||
Then, using PowerShell, open a notepad on `notepad $env:USERPROFILE\.wslconfig`. Inside, put these other flags:
|
||||
```
|
||||
[wsl2]
|
||||
nestedVirtualization=true
|
||||
```
|
||||
3. Restart WSL2 via CMD prompt or Powershell
|
||||
|
||||
4. Restart WSL2 via CMD prompt or Powershell
|
||||
```
|
||||
wsl --shutdown
|
||||
```
|
||||
@ -114,6 +118,8 @@ Credit goes to [Guillaume - The Parallel Interface blog](https://www.paralint.co
|
||||
|
||||
`nestedVirtualization` flag is only available to Windows 11.
|
||||
|
||||
If this setup does not work, you may have an old WSL version. In that case, ignore `\.wslconfig` and put everything on `/etc/wsl.conf`, including the `[wsl2]` flag.
|
||||
|
||||
Use-Cases
|
||||
---------
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
autopep8==2.3.2
|
||||
click==8.3.0
|
||||
coverage==7.10.7
|
||||
click==8.3.1
|
||||
coverage==7.13.3
|
||||
mock==5.2.0
|
||||
pytest==8.4.2
|
||||
pytest==9.0.2
|
||||
pytest-cov==7.0.0
|
||||
pytest-xdist==3.8.0
|
||||
requests==2.32.5
|
||||
setuptools==80.9.0
|
||||
setuptools==80.10.2
|
||||
|
||||
@ -60,7 +60,7 @@ def cli():
|
||||
|
||||
def start_appium() -> None:
|
||||
if convert_str_to_bool(os.getenv(ENV.APPIUM)):
|
||||
cmd = f"/usr/bin/appium"
|
||||
cmd = f"/usr/local/bin/appium"
|
||||
app_appium = Application("Appium", cmd,
|
||||
os.getenv(ENV.APPIUM_ADDITIONAL_ARGS, ""), False)
|
||||
app_appium.start()
|
||||
|
||||
27
docker/base
27
docker/base
@ -1,4 +1,4 @@
|
||||
FROM appium/appium:v3.1.0-p0
|
||||
FROM appium/appium:v3.2.0-p0
|
||||
|
||||
ARG AUTHORS="Budi Utomo"
|
||||
LABEL author="${AUTHORS} <budtmo.os@gmail.com>"
|
||||
@ -8,27 +8,30 @@ USER root
|
||||
#================
|
||||
# Basic Packages
|
||||
#----------------
|
||||
# ca-certificates
|
||||
# SSL client
|
||||
# python3-pip
|
||||
# python-pip
|
||||
# socat
|
||||
# Port forwarder
|
||||
# supervisor
|
||||
# Process manager
|
||||
# unzip
|
||||
# Unzip zip file
|
||||
# wget
|
||||
# Network downloader
|
||||
#================
|
||||
RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
|
||||
ca-certificates \
|
||||
python3-pip \
|
||||
socat \
|
||||
supervisor \
|
||||
unzip \
|
||||
wget \
|
||||
&& apt autoremove -y \
|
||||
&& apt clean all \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
#==================
|
||||
# Configure Python
|
||||
#==================
|
||||
RUN apt-get -qqy update && \
|
||||
apt-get -qqy --no-install-recommends install \
|
||||
python3-pip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
|
||||
|
||||
#=====================
|
||||
# Set release version
|
||||
|
||||
@ -11,7 +11,7 @@ ENV EMULATOR_ANDROID_VERSION=${EMULATOR_ANDROID_VERSION} \
|
||||
EMULATOR_SYS_IMG=x86_64 \
|
||||
EMULATOR_IMG_TYPE=google_apis \
|
||||
EMULATOR_BROWSER=chrome
|
||||
ENV PATH ${PATH}:${ANDROID_HOME}/build-tools
|
||||
ENV PATH=${PATH}:${ANDROID_HOME}/build-tools
|
||||
RUN yes | sdkmanager --licenses \
|
||||
&& sdkmanager "platforms;android-${EMULATOR_API_LEVEL}" \
|
||||
"system-images;android-${EMULATOR_API_LEVEL};${EMULATOR_IMG_TYPE};${EMULATOR_SYS_IMG}" "emulator" \
|
||||
@ -20,14 +20,10 @@ RUN yes | sdkmanager --licenses \
|
||||
#=============
|
||||
# UI Packages
|
||||
#-------------
|
||||
# ffmpeg
|
||||
# Video recorder
|
||||
# feh
|
||||
# Screen background
|
||||
# libxcomposite-dev
|
||||
# Window System for Emulator
|
||||
# menu
|
||||
# Debian menu
|
||||
# openbox
|
||||
# Windows manager
|
||||
# x11vnc
|
||||
@ -36,10 +32,8 @@ RUN yes | sdkmanager --licenses \
|
||||
# Terminal emulator
|
||||
#==================
|
||||
RUN apt-get -qqy update && apt-get -qqy install --no-install-recommends \
|
||||
ffmpeg \
|
||||
feh \
|
||||
libxcomposite-dev \
|
||||
menu \
|
||||
openbox \
|
||||
x11vnc \
|
||||
xterm \
|
||||
@ -78,13 +72,13 @@ EXPOSE 5900 6080
|
||||
#==========
|
||||
RUN rm -rf ${SCRIPT_PATH}
|
||||
ENV SCRIPT_PATH="docker-android"
|
||||
ENV WORK_PATH="/home/androidusr"
|
||||
ENV APP_PATH=${WORK_PATH}/${SCRIPT_PATH}
|
||||
RUN mkdir -p ${APP_PATH}
|
||||
COPY mixins ${APP_PATH}/mixins
|
||||
COPY cli ${APP_PATH}/cli
|
||||
RUN --mount=type=secret,id=extension,dst=/tmp/extension.sh \
|
||||
bash /tmp/extension.sh
|
||||
RUN echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
#===================
|
||||
# Configure OpenBox
|
||||
@ -94,7 +88,7 @@ RUN echo ${APP_PATH}/mixins/configs/display/.fehbg >> /etc/xdg/openbox/autostart
|
||||
#==================
|
||||
# Use created user
|
||||
#==================
|
||||
USER 1300:1301
|
||||
USER ${USERID}:${GROUPID}
|
||||
ENV LOG_PATH=${WORK_PATH}/logs \
|
||||
WEB_LOG_PORT=9000
|
||||
EXPOSE 9000
|
||||
@ -107,4 +101,4 @@ RUN mkdir -p "${WORK_PATH}/.config/Android Open Source Project" \
|
||||
#=========
|
||||
STOPSIGNAL SIGTERM
|
||||
ENV DEVICE_TYPE=emulator
|
||||
ENTRYPOINT ["/home/androidusr/docker-android/mixins/scripts/run.sh"]
|
||||
CMD ["${APP_PATH}/mixins/scripts/run.sh"]
|
||||
|
||||
@ -30,7 +30,6 @@ RUN wget -nv -O terraform.zip "https://releases.hashicorp.com/terraform/${TERRAF
|
||||
#==========
|
||||
RUN rm -rf ${SCRIPT_PATH}
|
||||
ENV SCRIPT_PATH="docker-android"
|
||||
ENV WORK_PATH="/home/androidusr"
|
||||
ENV APP_PATH=${WORK_PATH}/${SCRIPT_PATH}
|
||||
RUN mkdir -p ${APP_PATH}
|
||||
COPY mixins ${APP_PATH}/mixins
|
||||
@ -47,7 +46,7 @@ RUN mkdir -p ${GENYMOTION_TEMPLATE_PATH}
|
||||
#==================
|
||||
# Use created user
|
||||
#==================
|
||||
USER 1300:1301
|
||||
USER ${USERID}:${GROUPID}
|
||||
ENV LOG_PATH=${WORK_PATH}/logs \
|
||||
WEB_LOG_PORT=9000
|
||||
EXPOSE 9000
|
||||
@ -58,4 +57,4 @@ RUN mkdir -p ${LOG_PATH}
|
||||
#=========
|
||||
STOPSIGNAL SIGTERM
|
||||
RUN gmsaas config set android-sdk-path ${ANDROID_HOME}
|
||||
ENTRYPOINT ["/home/androidusr/docker-android/mixins/scripts/run.sh"]
|
||||
CMD ["${APP_PATH}/mixins/scripts/run.sh"]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user