Building apps using Ionic is useful for the ability to build for both IOS and Android from the same codebase. However, mostly because Ionic is build on top of the Apache Cordova framework, it can be difficult to make sure your environment is configured with the required version of each build component.
This is where Docker can be helpful. You can create a container that has a consistent environment and run it locally to build your project.
The Dockerfile here creates an environment suitable for building Android applications. The file that is created on build for Android is referred to as an APK. To generate your APK without modifying the Dockerfile at all, follow the directions below:
Step 1: Build Image
You can choose your own name for the image.
docker build -t <image_name> . --force-rm
Step 2: Run Container
Use the same image name as above to run container as background process.
docker run -t -d <image_name>
Step 3: Connect to Container
Find the name of the running container (Docker will generate one).
docker container ls
Get a bash shell in the container.
docker exec -i -t <container_name> /bin/bash
Step 4: Copy Project To Container
docker cp <local_path> <container_name>:<container_path>
Step 5: Build For Android
ionic cordova build --release android
Step 6: Clean-Up
Move your APK to local machine (it should be in <ionic_proj_name>/platforms/android/build/outputs/apk).
docker cp <container_name>:<ionic_proj_name>/platforms/android/build/outputs/apk <local_path>
docker kill <container_name>
As always, send me a message @HashedDan on Twitter for any questions or comments!