mirror of
https://github.com/HQarroum/docker-android.git
synced 2026-07-30 03:12:18 +00:00
Merge pull request #5 from twocolors/main
support all variables for docker and fix recreate avd
This commit is contained in:
+6
-4
@@ -4,9 +4,9 @@ ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
#WORKDIR /
|
||||
#=============================
|
||||
# Install Dependenices
|
||||
# Install Dependenices
|
||||
#=============================
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt update && apt install -y curl \
|
||||
sudo wget unzip bzip2 libdrm-dev \
|
||||
@@ -41,7 +41,8 @@ ENV ANDROID_SDK_ROOT=/opt/android \
|
||||
ABI=${IMG_TYPE}/${ARCHITECTURE} \
|
||||
GPU_ACCELERATED=$GPU_ACCELERATED \
|
||||
QTWEBENGINE_DISABLE_SANDBOX=1 \
|
||||
ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL=10
|
||||
ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL=10 \
|
||||
ANDROID_AVD_HOME=/data
|
||||
|
||||
# Exporting environment variables to keep in the path
|
||||
# Android SDK binaries and shared libraries.
|
||||
@@ -59,7 +60,8 @@ EXPOSE 5554 5555
|
||||
|
||||
# Initializing the required directories.
|
||||
RUN mkdir /root/.android/ && \
|
||||
touch /root/.android/repositories.cfg
|
||||
touch /root/.android/repositories.cfg && \
|
||||
mkdir /data
|
||||
|
||||
# Exporting ADB keys.
|
||||
#COPY keys/* /root/.android/
|
||||
|
||||
+4
-2
@@ -44,7 +44,8 @@ ENV ANDROID_SDK_ROOT=/opt/android \
|
||||
ABI=${IMG_TYPE}/${ARCHITECTURE} \
|
||||
GPU_ACCELERATED=$GPU_ACCELERATED \
|
||||
QTWEBENGINE_DISABLE_SANDBOX=1 \
|
||||
ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL=10
|
||||
ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL=10 \
|
||||
ANDROID_AVD_HOME=/data
|
||||
|
||||
# Exporting environment variables for keeping in the path
|
||||
# Android SDK binaries and shared libraries.
|
||||
@@ -62,7 +63,8 @@ EXPOSE 5554 5555
|
||||
|
||||
# Initializing the required directories.
|
||||
RUN mkdir /root/.android/ && \
|
||||
touch /root/.android/repositories.cfg
|
||||
touch /root/.android/repositories.cfg && \
|
||||
mkdir /data
|
||||
|
||||
# Exporting ADB keys.
|
||||
#COPY keys/* /root/.android/
|
||||
|
||||
@@ -76,7 +76,6 @@ You can generate one by running `adb keygen adbkey`, that generates 2 files - ad
|
||||
|
||||
override them inside ./keys directory.
|
||||
|
||||
|
||||
### Running the container
|
||||
|
||||
Once the image is built, you can mount your KVM driver on the container and expose its ADB port.
|
||||
@@ -87,6 +86,14 @@ Once the image is built, you can mount your KVM driver on the container and expo
|
||||
docker run -it --rm --device /dev/kvm -p 5555:5555 android-emulator
|
||||
```
|
||||
|
||||
### Save data/storage after restart (wipe)
|
||||
|
||||
All avd save in docker dir `/data`, name for avd is `android`
|
||||
|
||||
```bash
|
||||
docker run -it --rm --device /dev/kvm -p 5555:5555 -v ~/android_avd:/data android-emulator
|
||||
```
|
||||
|
||||
### Connect ADB to the container
|
||||
|
||||
The ADB server in the container will be spawned automatically and listen on all interfaces in the container. After a few seconds, once the kernel has booted, you will be able to connect ADB to the container.
|
||||
@@ -142,15 +149,22 @@ docker build \
|
||||
```
|
||||
|
||||
### Variables
|
||||
## Default variables
|
||||
|
||||
#### Disable animation
|
||||
DISABLE_ANIMATION=false
|
||||
|
||||
#### Disable hidden policy
|
||||
DISABLE_HIDDEN_POLICY=true
|
||||
DISABLE_HIDDEN_POLICY=false
|
||||
|
||||
#### skip adb authentication
|
||||
SKIP_AUTH=false
|
||||
#### Skip adb authentication
|
||||
SKIP_AUTH=true
|
||||
|
||||
#### Memory for emulator
|
||||
MEMORY=8192
|
||||
|
||||
#### Cores for emulator
|
||||
CORES=4
|
||||
|
||||
### Mount an external drive in the container
|
||||
|
||||
|
||||
+14
-8
@@ -1,7 +1,7 @@
|
||||
version: "4"
|
||||
services:
|
||||
android-emulator:
|
||||
build:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- API_LEVEL=34
|
||||
@@ -15,14 +15,17 @@ services:
|
||||
- DISABLE_HIDDEN_POLICY=true
|
||||
- SKIP_AUTH=false
|
||||
#- ANDROID_ADB_SERVER_ADDRESS=host.docker.internal
|
||||
privileged: true
|
||||
- MEMORY=16384
|
||||
- CORES=16
|
||||
privileged: true
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ./keys/adbkey:/root/.android/adbkey:ro
|
||||
- ./keys/adbkey.pub:/root/.android/adbkey.pub:ro
|
||||
- ./android_avd:/data
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
||||
android-emulator-cuda:
|
||||
build:
|
||||
@@ -40,14 +43,16 @@ services:
|
||||
- DISABLE_HIDDEN_POLICY=true
|
||||
- SKIP_AUTH=false
|
||||
#- ANDROID_ADB_SERVER_ADDRESS=host.docker.internal
|
||||
privileged: true
|
||||
- MEMORY=16384
|
||||
- CORES=16
|
||||
privileged: true
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- ./keys/adbkey:/root/.android/adbkey:ro
|
||||
- ./keys/adbkey.pub:/root/.android/adbkey.pub:ro
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
- "host.docker.internal:host-gateway"
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
@@ -72,7 +77,9 @@ services:
|
||||
- DISABLE_HIDDEN_POLICY=true
|
||||
- SKIP_AUTH=false
|
||||
#- ANDROID_ADB_SERVER_ADDRESS=host.docker.internal
|
||||
privileged: true
|
||||
- MEMORY=16384
|
||||
- CORES=16
|
||||
privileged: true
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
@@ -81,7 +88,7 @@ services:
|
||||
# volumes:
|
||||
# - ./:/mnt
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
- "host.docker.internal:host-gateway"
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
@@ -89,4 +96,3 @@ services:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
|
||||
+27
-21
@@ -4,13 +4,13 @@ set -e
|
||||
|
||||
source ./emulator-monitoring.sh
|
||||
|
||||
# The emulator console port.
|
||||
# The emulator console port.
|
||||
EMULATOR_CONSOLE_PORT=5554
|
||||
# The ADB port used to connect to ADB.
|
||||
ADB_PORT=5555
|
||||
MEMORY=16048
|
||||
CORES=10
|
||||
SKIP_AUTH=true
|
||||
OPT_MEMORY=${MEMORY:-8192}
|
||||
OPT_CORES=${CORES:-4}
|
||||
OPT_SKIP_AUTH=${SKIP_AUTH:-true}
|
||||
AUTH_FLAG=
|
||||
# Start ADB server by listening on all interfaces.
|
||||
echo "Starting the ADB server ..."
|
||||
@@ -25,16 +25,21 @@ socat tcp-listen:"$ADB_PORT",bind="$LOCAL_IP",fork tcp:127.0.0.1:"$ADB_PORT" &
|
||||
export USER=root
|
||||
|
||||
# Creating the Android Virtual Emulator.
|
||||
echo "Creating the Android Virtual Emulator ..."
|
||||
echo "Using package '$PACKAGE_PATH', ABI '$ABI' and device '$DEVICE_ID' for creating the emulator"
|
||||
echo no | avdmanager create avd \
|
||||
--force \
|
||||
--name android \
|
||||
--abi "$ABI" \
|
||||
--package "$PACKAGE_PATH" \
|
||||
--device "$DEVICE_ID"
|
||||
TEST_AVD="$(emulator -list-avds | grep android)"
|
||||
if [ -z "$TEST_AVD" ]; then
|
||||
echo "Use the exists Android Virtual Emulator ..."
|
||||
else
|
||||
echo "Creating the Android Virtual Emulator ..."
|
||||
echo "Using package '$PACKAGE_PATH', ABI '$ABI' and device '$DEVICE_ID' for creating the emulator"
|
||||
echo no | avdmanager create avd \
|
||||
--force \
|
||||
--name android \
|
||||
--abi "$ABI" \
|
||||
--package "$PACKAGE_PATH" \
|
||||
--device "$DEVICE_ID"
|
||||
fi
|
||||
|
||||
if [ "$SKIP_AUTH" == "true" ]; then
|
||||
if [ "$OPT_SKIP_AUTH" == "true" ]; then
|
||||
AUTH_FLAG="-skip-adb-auth"
|
||||
fi
|
||||
|
||||
@@ -55,17 +60,18 @@ fi
|
||||
wait_for_boot &
|
||||
|
||||
# Start the emulator with no audio, no GUI, and no snapshots.
|
||||
echo "Starting the emulator ... "
|
||||
echo "OPTIONS: "
|
||||
echo "GPU - $GPU_MODE"
|
||||
echo "MEMORY - $MEMORY"
|
||||
echo "CORES - $CORES"
|
||||
echo "Starting the emulator ..."
|
||||
echo "OPTIONS:"
|
||||
echo "ADB AUTH - $OPT_SKIP_AUTH"
|
||||
echo "GPU - $GPU_MODE"
|
||||
echo "MEMORY - $OPT_MEMORY"
|
||||
echo "CORES - $OPT_CORES"
|
||||
emulator \
|
||||
-avd android \
|
||||
-gpu "$GPU_MODE" \
|
||||
-memory $MEMORY \
|
||||
-memory $OPT_MEMORY \
|
||||
-no-boot-anim \
|
||||
-cores $CORES \
|
||||
-cores $OPT_CORES \
|
||||
-ranchu \
|
||||
$AUTH_FLAG \
|
||||
-no-window \
|
||||
@@ -73,4 +79,4 @@ emulator \
|
||||
|
||||
|
||||
# -qemu \
|
||||
# -smp 8,sockets=1,cores=4,threads=2,maxcpus=8
|
||||
# -smp 8,sockets=1,cores=4,threads=2,maxcpus=8
|
||||
Reference in New Issue
Block a user