Android emulator image contains the latest SDK, Appium, chrome browser, and VNC. useful for CICD.
5.5K
It's a docker image, provides an easy way to have an android emulator working inside a docker container by running few simple commands or by using a simple docker-compose file, the image comes with the latest Android SDK, also the ability to run automation tests against multiple browsers using selenium.
The image is updated regularly every month.
For any issues or questions please open a ticket on the GitHub repo : Github Repo
Down below is the list of the main scripts to launch the relevant service, certain environment variables should be passed during starting the container.
Pull the docker image :
docker pull amrka/ultimate-android:latest
Start your container:
docker run -it -d -p 5900:5900 --name androidImage --privileged amrka/ultimate-android
Launch the appium session :
docker exec --privileged -it androidImage bash -c "appium -p 5900"
Start the emulator in headless mode :
docker exec --privileged -it androidImage bash -c "./start_emu_headless.sh"
Cloning your repository (in case of execution inside the container) :
docker exec --privileged -it androidImage bash -c "./clone_repo.sh"
docker exec --privileged -it androidImage bash -c "./execute_test.sh"
Starting selenium instance:
docker exec --privileged -it androidImage bash -c "./clone_repo.sh"
docker exec --privileged -it androidImage bash -c "./start_selenium.sh"
Starting VNC server:
docker exec --privileged -it androidImage bash -c "./bootstrap.sh"
You will have to start the docker container by using the following command:
docker run -it -d -p 5900:5900 --name androidImage -e VNC_PASSWORD=password --privileged amrka/ultimate-android
Instantiate the VNC service by running:
docker exec --privileged -it androidImage bash -c "./bootstrap.sh"
Connect to the VNC server via remmina or any VNC viewer, on:
localhost:5900
Open dash terminal in vnc viewer and right the following command:
#: ./start_emu.sh
*Note:
In order to clone your repository inside the docker container automatically, you will need to pass the env variables as shown below during container initialization, cloning repository will allow you to run test inside the container against either browsers or emulators using appium, note that relevant services should be triggered according to your need:
BRANCH: Repository branch name
GITHUB_USERNAME: GitHub username/Orgnization name
GITHUB_TOKEN: Github personal token
REPO_NAME: the exact name of the GitHub repository
SCRIPT : using this command will allow you to execute certain test command such as "mvn clean test" or "npm run test" note you don't need to run npm I
REPORT: Name of the reporting service 'only allure for now'
REPORT_DIR: The expected root directory for allure-results folder, such as './report'
docker run --privileged -it -d -p 5900:5900 --name androidImage -e BRANCH=win -e GITHUB_USERNAME=amrka -e GITHUB_TOKEN=test -e REPO_NAME=yourRepoName amrka/ultimate-android
After running the command above you will be able now to run the following command to have your Repository clones in / directory:
docker exec --privileged -it androidImage bash -c "./clone_repo.sh"
Note: You can combine all VNC env var with the env above.
Using the docker-compose file will make initiating the service even easier, docker-compose YAML file provided has several services such as launching emulator with appium instance, starting selenium instance with specific web driver (firefox/chrome), cloning your test automation repo, and executing your test, launching VNC server, it's possible to disable/enable any service based on your need.
docker compose up >> For mac with latest docker cli
docker-compose up >> Other OS
Provide the required Environments during container initializing, in case of manual execution
| Environments | Description | Required | Service |
|---|---|---|---|
| APPIUM_PORT | Port for the appium instance | Yes | Android |
| BRANCH | Repository branch name, default is master | Optional | Clone |
| GITHUB_USERNAME | Github username | Yes | Clone |
| GITHUB_TOKEN | Personal GitHub token | Yes | Clone |
| REPO_NAME | Repository exact name | Yes | Clone |
| TEST_SCRIPT | Test command to be run e.g. 'mvn clean test'/ 'npm run test' | Optional | Clone |
| REPORT | Provide 'allure' in order to generate allure report | Optional | Clone |
| REPORT_DIR | Provide expected directory for allure-results folder e.g './' or 'report/'...etc | Optional | Clone |
| BROWSER | Use firefox or chrome, default is chrome | Optional | Selenium |
| VNC_PASSWORD | Password needed to connect to VNC Server | Yes | VNC |
Run the following command to kill and remove the container:
docker rm -f containerName
Content type
Image
Digest
sha256:9f6801339…
Size
3 GB
Last updated
over 3 years ago
docker pull amrka/ultimate-android