docker-android

Android in docker solution with noVNC supported and video recording

View the Project on GitHub iandroids/docker-android

Proxy

You can enable proxy inside container and Android emulator by passing following environment variables:

Language

You can change the language setting of Android Emulator on the fly by passing following environment variable:

Camera

Passing following environment variable to be able to connect laptop / pc camera to Android emulator:

Custom Emulator Arguments

If you want to add more arguments for running emulator, you can pass an environment variable EMULATOR_ARGS while running docker command.

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 by passing environment variable ATD=true and bind the port to the host, e.g. -p 4567:4567

SaltStack

You can enable SaltStack to control running containers by passing environment variable SALT_MASTER=.

Back & Restore

If you want to backup/reuse the avds created with furture upgrades or for replication, run the container with two extra mounts

docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -v local_backup/.android:/root/.android -v local_backup/android_emulator:/root/android_emulator -e DEVICE="Nexus 5" --name android-container budtmo/docker-android-x86-8.1

For the first run, this will create a new avd and all the changes will be accessible in the local_backup directory. Now for all future runs, it will reuse the avds. Even this should work with new releases of docker-android