{"id":21026521,"url":"https://github.com/nimblehq/appium-w-rspec-docker","last_synced_at":"2025-11-11T20:47:18.014Z","repository":{"id":126039157,"uuid":"140657248","full_name":"nimblehq/appium-w-rspec-docker","owner":"nimblehq","description":"UI Testing Android application with Appium + Rspec without the pain of setup.","archived":false,"fork":false,"pushed_at":"2018-12-03T06:09:06.000Z","size":61,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-01T16:09:23.171Z","etag":null,"topics":["appium","docker","rspec","ruby"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nimblehq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-12T03:40:06.000Z","updated_at":"2021-01-30T14:08:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"b2772845-0ee7-488d-8281-bd165e5d645d","html_url":"https://github.com/nimblehq/appium-w-rspec-docker","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nimblehq/appium-w-rspec-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimblehq%2Fappium-w-rspec-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimblehq%2Fappium-w-rspec-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimblehq%2Fappium-w-rspec-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimblehq%2Fappium-w-rspec-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nimblehq","download_url":"https://codeload.github.com/nimblehq/appium-w-rspec-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimblehq%2Fappium-w-rspec-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283929670,"owners_count":26918166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-11T02:00:06.610Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appium","docker","rspec","ruby"],"created_at":"2024-11-19T11:45:00.701Z","updated_at":"2025-11-11T20:47:17.997Z","avatar_url":"https://github.com/nimblehq.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker image for Appium (and Node) + Rspec (Ruby) + ADB (Android SDK)\n- Forget the pain of setting up node, appium, ruby, rvm...etc before being able to write test with [Appium](http://appium.io/), Docker is here to the rescue. Now you just need to install Docker components and start running your test suites without the hesitate of installation (which might be a bit unfamiliar to Mobile Developers, maybe not familiar with Docker too, but this setup is promised to be less error prone and easy to replicate!).\n\n## This docker image includes:\n  - Node v7.10.1\n  - Appium v1.8.1\n  - Ruby 2.5.1p57 (with rbenv)\n  - Rspec (3.7.0)\n  - ADB (with android build tools v28.0.0)\n  \n## Overview diagram\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./snapshot-images/diagram.jpg\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n## Usage:\n### 1. Get all installation packages:\n  - Docker Engine (https://docs.docker.com/docker-for-mac/install/)\n  - Emulator (x86) image (or Genymotion is a good choice too).\n\n### 2. Installation instructions:\n  - Install Docker Engine\n  - Clone and cd to this Repository.\n   \n  - Start building the Docker image: \n     \n    `$ docker build . --tag appspec:latest` // change the image name and tag as you wish --tag [image_name]:[version]\n     \n  - When everything is done, Run a container from that image:\n     \n    `$ docker run --privileged -d -p 4723:4723 -e REMOTE_ADB=true -e ANDROID_DEVICES=docker.for.mac.localhost:5555 --name appspec-container -i appspec:latest` \n    // change the container [name:version] as you wish, simply replace appspec:latest\n     \n  - Arg explanation: \n    - Port 4723 is opened for Appium connection\n    - ANDROID_DEVICES is the IP of the host emulator, with our current setup, the emulator is supposed to run on host machine at port 5555. `docker.for.mac.localhost` is [a special designed loopback address](https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/21) to help communicating from docker container to the host's localhost easier.\n    - At init, the container will automatically provision for the emulator connection and starting Appium server.\n  - Validate the setup:\n    - Check if appium server is up: curl or access via browser: http://localhost:4723\n    - Check if the adb inside container has connected to the emulator: \n        \n      `$ docker exec -it appspec-container adb devices` \n      -\u003e there should be a list showing that specific emulator connected (via its IP address).\n\n### 3. Run your Rspec test:\n  - The current setup might have missed some Android SDK tools, but intentionally we won't provide much Android dependencies here, so **make sure you had built APK** for testing first.\n  - Copy the Project into this container: \n     \n    `$ docker cp path/to/your/repo appspec-container:/project-name`\n\n  - From here, you can either get INTO that container to execute command, or appending \n     \n    `$ docker exec -it appspec-container [your_command]`\n   \n  - Get into the container with bash shell open: \n   \n    `$ docker exec -it appspec-container /bin/bash`\n   \n  - Now you're inside the container, navigate to your project that contains the Gemfile.\n   \n    `cd path/to/your/workspace/repo`\n   \n  - Install your required gem: \n     \n    `$ bundle install`\n   \n  - Run your specs: \n     \n    `$ bundle exec rspec spec/your-specs`\n   \n  - NOTE: if your test suites has command to run with `adb` somewhere (e.g: adb install, adb uninstall...), make sure you have specify with `-s $ANDROID_DEVICES` to route the command to the specific emulator you want.\n\n\n### Thoughts?\n\n## License\n\nThis project is Copyright (c) 2014-2018 Nimbl3 Ltd. It is free software,\nand may be redistributed under the terms specified in the [LICENSE] file.\n\n[LICENSE]: /LICENSE\n\n## About\n\n![Nimbl3](https://dtvm7z6brak4y.cloudfront.net/logo/logo-repo-readme.jpg)\n\nThis project is maintained and funded by Nimbl3 Ltd.\n\nWe love open source and do our part in sharing our work with the community!\nSee [our other projects][community] or [hire our team][hire] to help build your product.\n\n[community]: https://nimbl3.github.io/\n[hire]: https://nimbl3.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimblehq%2Fappium-w-rspec-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnimblehq%2Fappium-w-rspec-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimblehq%2Fappium-w-rspec-docker/lists"}