Building an Android project from the command line with Docker

I inherited Android Java-code in my company, without Gradle-files etc, and I want to be able to compile this on my dev-server (I program from a ChromeOS machine, hence a CLI SSH connection to a server where I do dev stuff). Now I found some Docker images like (with a not even working command line example) but I don’t manage to create an APK yet. What am I missing and how would you do this?

  • How to launch AVD while keep running docker
  • Setting up Ruby along with android in docker
  • Reusing docker environment variables in CLI
  • Fail to execute command using Docker
  • Rancher CLI random host port mapping
  • Android / busybox / termux test envionment
  • How to get from Android Emulator to Docker Machine's container?
  • Workflow for Python with Docker + IDE for non-web applications
  • ADB unable to start or find devices after sudo adb devices
  • Android / busybox / termux test envionment
  • Is there a way to start a docker container in bluemix and see the command line output?
  • Running multiple projects using docker which each runs with docker-compose
  • One Solution collect form web for “Building an Android project from the command line with Docker”

    You have three steps to do:

    1. Migrate your project to gradle.

      It isn’t too difficult since there are plenty of gradle project out there and you can try to follow them or just read “Migrating to Gradle” article.

    2. Build project with gradle on local machine.

      If you migrated properly you can build your project in terminal like:

      ./gradlew assembleDebug

      but it might be also assembleDevDebug or assembleProdRelease which depends on your buildType and flavor in gradle. Check which assembles are available by running:

      ./gradlew tasks

    3. Build project using Docker.

      Based on image you linked:

      docker run -t -i ksoichiro/android -v /path/to/project:/workspace -w workspace /bin/sh -c "./gradlew assembleDebug"

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.