{"id":21657931,"url":"https://github.com/alvr/alpine-android","last_synced_at":"2025-07-17T20:32:27.364Z","repository":{"id":41506625,"uuid":"86627753","full_name":"alvr/alpine-android","owner":"alvr","description":"🐋 Small docker image for building \u0026 testing Android applications.","archived":false,"fork":false,"pushed_at":"2024-08-05T13:05:25.000Z","size":152,"stargazers_count":328,"open_issues_count":6,"forks_count":53,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-08-05T17:26:34.730Z","etag":null,"topics":["alpine","alpine-android","android","android-image","docker-alpine","docker-alpine-android","docker-android","docker-image"],"latest_commit_sha":null,"homepage":"https://alvr.dev","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alvr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"ko_fi":"alvrSG","custom":["https://paypal.me/alvaro"]}},"created_at":"2017-03-29T20:44:49.000Z","updated_at":"2024-08-04T21:40:37.000Z","dependencies_parsed_at":"2023-01-22T14:00:32.690Z","dependency_job_id":"a030a72a-bc9f-40ee-81f5-9a932cec2dc0","html_url":"https://github.com/alvr/alpine-android","commit_stats":null,"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvr%2Falpine-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvr%2Falpine-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvr%2Falpine-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvr%2Falpine-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alvr","download_url":"https://codeload.github.com/alvr/alpine-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226304187,"owners_count":17603530,"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","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":["alpine","alpine-android","android","android-image","docker-alpine","docker-alpine-android","docker-android","docker-image"],"created_at":"2024-11-25T09:28:22.166Z","updated_at":"2025-07-17T20:32:27.343Z","avatar_url":"https://github.com/alvr.png","language":"Dockerfile","readme":"# Alpine Android Docker Images\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://alvr.dev/en/projects/docker/alpine-android/\"\u003e\u003cimg alt=\"Alpine Android\" src=\"https://alvr.dev/projects/alpine-android/docker-android.webp\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/alvr/alpine-android/actions/workflows/default.yaml\"\u003e\u003cimg alt=\"GitHub build status\" src=\"https://img.shields.io/github/actions/workflow/status/alvr/alpine-android/default.yaml?logo=github\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/alvr/alpine-android/releases/latest\"\u003e\u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/alvr/alpine-android?logo=android\u0026logoColor=white\u0026color=066da5\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://newreleases.io/dockerhub/alvrme/alpine-android\"\u003e\u003cimg alt=\"Notify new versions\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-get%20notified-%23005cc5\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Docker Alpine Android Base Pulls\" src=\"https://img.shields.io/docker/pulls/alvrme/alpine-android-base?label=base%20pulls\u0026logo=docker\u0026logoColor=white\u0026color=066da5\"/\u003e\n  \u003cimg alt=\"Docker Alpine Android Main Pulls\" src=\"https://img.shields.io/docker/pulls/alvrme/alpine-android?label=main%20pulls\u0026logo=docker\u0026logoColor=white\u0026color=066da5\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/alvrme/alpine-android-base\"\u003e\u003cimg alt=\"DockerHub Link\" src=\"https://img.shields.io/badge/base%20image-hub-%23066da5?logo=docker\u0026logoColor=white\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/users/alvr/packages/container/package/alpine-android-base\"\u003e\u003cimg alt=\"GitHub Container Registry Link\" src=\"https://img.shields.io/badge/base%20image-ghcr-black?logo=github\u0026logoColor=white\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://quay.io/repository/alvr/alpine-android-base\"\u003e\u003cimg alt=\"Quay Link\" src=\"https://img.shields.io/badge/base%20image-quay-%23D71E00?logo=redhat\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/alvrme/alpine-android\"\u003e\u003cimg alt=\"DockerHub Link\" src=\"https://img.shields.io/badge/main%20image-hub-%23066da5?logo=docker\u0026logoColor=white\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/users/alvr/packages/container/package/alpine-android\"\u003e\u003cimg alt=\"GitHub Container Registry Link\" src=\"https://img.shields.io/badge/main%20image-ghcr-black?logo=github\u0026logoColor=white\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://quay.io/repository/alvr/alpine-android\"\u003e\u003cimg alt=\"Quay Link\" src=\"https://img.shields.io/badge/main%20image-quay-%23D71E00?logo=redhat\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Variants\n\nThere are three variants of the image, all based on `bellsoft/liberica-openjdk-alpine`:\n\n* JDK8 images are based on Liberica JDK 8u422-6 and uses the tag's suffix `-jdk8`.\n* JDK11 images are based on Liberica JDK 11.0.24-9 and uses the tag's suffix `-jdk11`.\n* JDK17 images are based on Liberica JDK 17.0.12-10 and uses the tag's suffix `-jdk17`.\n* JDK21 images are based on Liberica JDK 21.0.4+9 and uses the tag's suffix `-jdk21`.\n\n### Which one should I use?\n\n| JDK version | AGP version         |\n|-------------|---------------------|\n| 8           | \u003c 7.0.0             |\n| 11          | \u003e= 7.0.0 \u0026\u0026 \u003c 8.0.0 |\n| 17          | \u003e= 8.0.0            |\n| 21          | \u003e= 8.2.1            |\n\n## Tagging\n\n| API level        | JDK8                             | JDK11                                            | JDK17                                        | JDK21                              |\n|------------------|----------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------|\n| Base Image       | `jdk8` `latest-jdk8`             | `jdk11`, `latest-jdk11`                          | `jdk17`, `latest`, `latest-jdk17`            | `jdk21`, `latest-jdk21`            |\n| Android 9.0 (28) | `android-28-jdk8`                | `android-28`, `android-28-jdk11`                 | `android-28-jdk17`                           | `android-28-jdk21`                 |\n| Android 10 (29)  | `android-29-jdk8`                | `android-29`, `android-29-jdk11`                 | `android-29-jdk17`                           | `android-29-jdk21`                 |\n| Android 11 (30)  | `android-30-jdk8`                | `android-30`, `android-30-jdk11`                 | `android-30-jdk17`                           | `android-30-jdk21`                 |\n| Android 12 (31)  | `android-31-jdk8`                | `android-31`, `android-31-jdk11`                 | `android-31-jdk17`                           | `android-31-jdk21`                 |\n| Android 12L (32) | `android-32-jdk8`                | `android-32`, `android-32-jdk11`                 | `android-32-jdk17`                           | `android-32-jdk21`                 |\n| Android 13 (33)  | `android-33-jdk8`                | `android-33`, `android-33-jdk11`                 | `android-33-jdk17`                           | `android-33-jdk21`                 |\n| Android 14 (34)  | `android-34-jdk8`                | `android-34`, `android-34-jdk11`                 | `android-34-jdk17`                           | `android-34-jdk21`                 |\n| Android 15 (35)  | `android-35-jdk8`, `latest-jdk8` | `android-35`, `android-35-jdk11`, `latest-jdk11` | `android-35-jdk17`, `latest`, `latest-jdk17` | `android-35-jdk21`, `latest-jdk21` |\n| Android 16 (36)  | `android-36-jdk8`                | `android-36`, `android-36-jdk11`                 | `android-36-jdk17`                           | `android-36-jdk21`                 |\n\n### Versioning\n\nSince January 1st 2021, new versions now include the date it was published so is possible to revert to a previous version. The versioning only applies to tags with the JDK version specified. The tag's format is: `android-XX-jdkZZ-vYYYY.MM.DD`, where:\n\n* `XX` is the API level.\n* `ZZ` is the version of the JDK.\n* `YYYY` is the year of the release version.\n* `MM` is the month of the year of the release version with leading zeros.\n* `DD` is the day of the month of the release version with leading zeros.\n\nA valid example would be `android-30-jdk11-v2021.01.01`. [Here](https://github.com/alvr/alpine-android/releases) are listed all the versions.\n\n\u003e :memo: Versioning is not available for `alpine-android-base`.\n\n## Content\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android Base image\u003c/summary\u003e\n  \n![Docker Android Base JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android-base/jdk8?label=jdk8%20image%20size) ![Docker Android Base JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android-base/jdk11?label=jdk11%20image%20size) ![Docker Android Base JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android-base/jdk17?label=jdk17%20image%20size) ![Docker Android Base JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android-base/jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n\n## Extend from Alpine Android Base\n\nUse the [following configuration](https://github.com/alvr/alpine-android#use-as-base-image) in your Dockerfile. After that, you can install any Android package [available](https://gist.github.com/alvr/8db356880447d2c4bbe948ea92d22c23). To install an Android package, include the following line on your Dockerfile:\n\n```dockerfile\nRUN sdkmanager \u003clist-of-packages\u003e\n```\n\nIf you want to install an Alpine package [available](https://pkgs.alpinelinux.org/packages?branch=v3.19). To install an Android package, include the following line on your Dockerfile:\n\n```dockerfile\nRUN apk add --no-cache \u003clist-of-packages\u003e\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 9 (Pie) image\u003c/summary\u003e\n\n![Docker Android 9 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-28-jdk8?label=jdk8%20image%20size) ![Docker Android 9 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-28-jdk11?label=jdk11%20image%20size) ![Docker Android 9 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-28-jdk17?label=jdk17%20image%20size) ![Docker Android 9 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-28-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;28.0.3        | 28.0.3  | Android SDK Build-Tools             | build-tools/28.0.3/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-28      | 6       | Android SDK Platform 28             | platforms/android-28/      |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 10 (Q) image\u003c/summary\u003e\n\n![Docker Android 10 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-29-jdk8?label=jdk8%20image%20size) ![Docker Android 10 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-29-jdk11?label=jdk11%20image%20size) ![Docker Android 10 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-29-jdk17?label=jdk17%20image%20size) ![Docker Android 10 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-29-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;29.0.3        | 29.0.3  | Android SDK Build-Tools             | build-tools/29.0.3/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-29      | 5       | Android SDK Platform 29             | platforms/android-29/      |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 11 (R) image\u003c/summary\u003e\n\n![Docker Android 11 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-30-jdk8?label=jdk8%20image%20size) ![Docker Android 11 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-30-jdk11?label=jdk11%20image%20size) ![Docker Android 11 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-30-jdk17?label=jdk17%20image%20size) ![Docker Android 11 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-30-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;30.0.3        | 30.0.3  | Android SDK Build-Tools             | build-tools/30.0.3/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-30      | 3       | Android SDK Platform 30             | platforms/android-30/      |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 12 (S) image\u003c/summary\u003e\n\n![Docker Android 12 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-31-jdk8?label=jdk8%20image%20size) ![Docker Android 12 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-31-jdk11?label=jdk11%20image%20size) ![Docker Android 12 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-31-jdk17?label=jdk17%20image%20size) ![Docker Android 12 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-31-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;31.0.0        | 31.0.0  | Android SDK Build-Tools             | build-tools/31.0.0/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-31      | 1       | Android SDK Platform 31             | platforms/android-31/      |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 12L image\u003c/summary\u003e\n\n![Docker Android 12L JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-32-jdk8?label=jdk8%20image%20size) ![Docker Android 12L JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-32-jdk11?label=jdk11%20image%20size) ![Docker Android 12L JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-32-jdk17?label=jdk17%20image%20size) ![Docker Android 12 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-32-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;32.0.0        | 32.0.0  | Android SDK Build-Tools             | build-tools/32.0.0/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-32      | 1       | Android SDK Platform 32             | platforms/android-32/      |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 13 (Tiramisu) image\u003c/summary\u003e\n\n![Docker Android 13 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-33-jdk8?label=jdk8%20image%20size) ![Docker Android 13 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-33-jdk11?label=jdk11%20image%20size) ![Docker Android 13 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-33-jdk17?label=jdk17%20image%20size) ![Docker Android 13 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-33-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version | Description                         | Location                   |\n|---------------------------|---------|-------------------------------------|----------------------------|\n| build-tools;33.0.2        | 33.0.3  | Android SDK Build-Tools             | build-tools/33.0.3/        |\n| extras;google;instantapps | 1.9.0   | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1       | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2  | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-33      | 2       | Android SDK Platform 33             | platforms/android-33/      |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 14 (Upside-down Cake) image\u003c/summary\u003e\n\n![Docker Android 14 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-34-jdk8?label=jdk8%20image%20size) ![Docker Android 14 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-34-jdk11?label=jdk11%20image%20size) ![Docker Android 14 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-34-jdk17?label=jdk17%20image%20size) ![Docker Android 14 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-34-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version    | Description                         | Location                   |\n|---------------------------|------------|-------------------------------------|----------------------------|\n| build-tools;34.0.0        | 34.0.0     | Android SDK Build-Tools             | build-tools/34.0.0/        |\n| extras;google;instantapps | 1.9.0      | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1          | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2     | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-34      | 3          | Android SDK Platform 34             | platforms/android-34/      |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 15 (VanillaIceCream) image\u003c/summary\u003e\n\n![Docker Android 15 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-35-jdk8?label=jdk8%20image%20size) ![Docker Android 15 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-35-jdk11?label=jdk11%20image%20size) ![Docker Android 15 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-35-jdk17?label=jdk17%20image%20size) ![Docker Android 15 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-35-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version    | Description                         | Location                   |\n|---------------------------|------------|-------------------------------------|----------------------------|\n| build-tools;35.0.1        | 35.0.1     | Android SDK Build-Tools             | build-tools/35.0.1/        |\n| extras;google;instantapps | 1.9.0      | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1          | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 35.0.2     | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-35      | 2          | Android SDK Platform 35             | platforms/android-35/      |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee content of Android 16 (Baklava) image\u003c/summary\u003e\n\n![Docker Android 16 JDK8 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-36-jdk8?label=jdk8%20image%20size) ![Docker Android 16 JDK11 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-36-jdk11?label=jdk11%20image%20size) ![Docker Android 16 JDK17 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-36-jdk17?label=jdk17%20image%20size) ![Docker Android 16 JDK21 Size](https://img.shields.io/docker/image-size/alvrme/alpine-android/android-36-jdk21?label=jdk21%20image%20size)\n\n| Path                      | Version    | Description                         | Location                   |\n|---------------------------|------------|-------------------------------------|----------------------------|\n| build-tools;36.0.0        | 36.0.0     | Android SDK Build-Tools             | build-tools/36.0.0/        |\n| extras;google;instantapps | 1.9.0      | Google Play Instant Development SDK | extras/google/instantapps/ |\n| patcher;v4                | 1          | SDK Patch Applier v4                | patcher/v4/                |\n| platform-tools            | 36.0.0     | Android SDK Platform-Tools          | platform-tools/            |\n| platforms;android-36      | 1          | Android SDK Platform 36             | platforms/android-36/      |\n\n\u003c/details\u003e\n\n## Containers registries\n\nBecause of the [DockerHub rate limits](https://www.docker.com/increase-rate-limits), the image is now in three different containers registries:\n\n* DockerHub: [Base Image](https://hub.docker.com/repository/docker/alvrme/alpine-android-base/tags) and [Android Image](https://hub.docker.com/repository/docker/alvrme/alpine-android/tags).\n* GitHub Container Registry: [Base Image](https://github.com/users/alvr/packages/container/alpine-android-base/versions) and [Android Image](https://github.com/users/alvr/packages/container/alpine-android/versions).\n* Quay: [Base Image](https://quay.io/repository/alvr/alpine-android-base?tab=tags) and [Android Image](https://quay.io/repository/alvr/alpine-android?tab=tags).\n\n### Pulling from the different registries\n\nReplace `\u003ctag\u003e` with one of the current [available tags](#tagging).\n\n#### DockerHub pulling\n\nYou can pull a specific Docker image from DockerHub with the following command:\n\n```bash\ndocker pull alvrme/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker pull alvrme/alpine-android:\u003ctag\u003e\n```\n\n#### GHCR pulling\n\nYou can pull a specific Docker image from GitHub Container Registry with the following command:\n\n```bash\ndocker pull ghcr.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker pull ghcr.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n#### Quay pulling\n\nYou can pull a specific Docker image from Quay with the following command:\n\n```bash\ndocker pull quay.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker pull quay.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n### Use as Base Image\n\nReplace `\u003ctag\u003e` with one of the current [available tags](#tagging).\n\n#### DockerHub base image\n\nYou can use the Docker images from DockerHub as a base image for creating a new one:\n\n```Dockerfile\nFROM alvrme/alpine-android-base:\u003ctag\u003e\n```\n\n```Dockerfile\nFROM alvrme/alpine-android:\u003ctag\u003e\n```\n\n#### GHCR base image\n\nYou can use the Docker images from GitHub Container Registry as a base image for creating a new one:\n\n```Dockerfile\nFROM ghcr.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```Dockerfile\nFROM ghcr.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n#### Quay base image\n\nYou can use the Docker images from Quay as a base image for creating a new one:\n\n```Dockerfile\nFROM quay.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```Dockerfile\nFROM quay.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n### Run container\n\nReplace `\u003ctag\u003e` with one of the current [available tags](#tagging).\n\nThe command below will create a new container based on the specific image. It will open in the `/home/android` directory and the various [available commands](https://alvr.dev/en/projects/docker/alpine-android/#tools-included) in the `PATH` will be able to be executed. Once the container is closed, it will be deleted. To keep the container after closing it, you have to remove `--rm` from the command.\n\n#### DockerHub run container\n\nRun the container from the DockerHub image:\n\n```bash\ndocker run --rm -it alvrme/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker run --rm -it alvrme/alpine-android:\u003ctag\u003e\n```\n\n#### GHCR run container\n\nRun the container from the GitHub Container Registry image:\n\n```bash\ndocker run --rm -it ghcr.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker run --rm -it ghcr.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n#### Quay run container\n\nRun the container from the Quay image:\n\n```bash\ndocker run --rm -it quay.io/alvr/alpine-android-base:\u003ctag\u003e\n```\n\n```bash\ndocker run --rm -it quay.io/alvr/alpine-android:\u003ctag\u003e\n```\n\n## Extras\n\nThe base image also includes the `extras` command that contains small utilities that are not installed by default, since their use is not widespread.\n\nThese extras are executed with the command `extras \u003ccommand\u003e` and are the following\n\n### Fastlane\n\n[fastlane](https://github.com/fastlane/fastlane) is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application. Visit their [documentation](https://docs.fastlane.tools/) for more information.\n\nThis command allows you to install `fastlane`. There are two variants:\n\n```bash\nextras fastlane\n```\n\nThis command allows you to install the latest version of `fastlane`. If you want to use a specific version, the command is as follows:\n\n```bash\nextras fastlane \u003cversion\u003e\n```\n\n### NDK\n\nThe [Android NDK](https://developer.android.com/ndk) is a toolset that lets you implement parts of your app in native code, using languages such as C and C++. For certain types of apps, this can help you reuse code libraries written in those languages.\n\nThis command allows you to install NDK and CMAKE using the latest versions available (NDK: `26.1.10909125`; CMAKE: `3.22.1`):\n\n```bash\nextras ndk\n```\n\nIs also possible to specify the version of NDK and CMAKE with:\n\n```bash\nextras ndk [--ndk | -n \u003cversion\u003e] [--cmake | -c \u003cversion\u003e]\n```\n\nIt is not necessary to enter both versions, is possible to omit one.\n\n## Extending from Alpine Android Base\n\n[Read more here](https://alvr.dev/en/projects/docker/alpine-android/#alpine-android-base)\n\n## Difference between Alpine Android and Alpine Android Base\n\nThe main difference between Alpine Android and Alpine Android Base is that the first one includes the corresponding `build-tools` and `platforms;android` versions. All Alpine Android versions share 95% of the code. Using a base image with the common part makes it easier to maintain.\n\n\u003c!--\nmarkdownlint-configure-file {\n  \"MD028\": false,\n  \"MD033\": {\n    \"allowed_elements\": [\"a\", \"details\", \"img\", \"p\", \"summary\"]\n    }\n  }\n--\u003e\n","funding_links":["https://ko-fi.com/alvrSG","https://paypal.me/alvaro"],"categories":["Dockerfile"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvr%2Falpine-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falvr%2Falpine-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvr%2Falpine-android/lists"}