Namespace
budtmo
Image / Tag
docker-android:emulator_12.0_v3.2.2-p0
Content Digest
sha256:1881024a34037fe101d9a0ce1ade2bfe76f30ff7634a30e80177b415161676f3
Details
Created

2026-03-19 14:51:45 UTC

Size

2.81 GB

Content Digest
Labels
  • author
    Budi Utomo <budtmo.os@gmail.com>
  • org.opencontainers.image.ref.name
    ubuntu
  • org.opencontainers.image.version
    24.04

Environment
ANDROID_HOME

/opt/android

APPIUM_DRIVER_ESPRESSO_VERSION

7.0.0

APPIUM_DRIVER_FLUTTER_VERSION

3.5.0

APPIUM_DRIVER_GECKO_VERSION

2.1.12

APPIUM_DRIVER_UIAUTOMATOR2_VERSION

7.0.0

APPIUM_VERSION

3.2.2

APP_PATH

/home/androidusr/docker-android

DEBIAN_FRONTEND

noninteractive

DEVICE_TYPE

emulator

DISPLAY

:0

DOCKER_ANDROID_VERSION

v3.2.2-p0

EMULATOR_ANDROID_VERSION

12.0

EMULATOR_API_LEVEL

32

EMULATOR_BROWSER

chrome

EMULATOR_IMG_TYPE

google_apis

EMULATOR_SYS_IMG

x86_64

GROUPID

1301

JAVA_HOME

/usr/lib/jvm/java-25-openjdk-amd64

LOG_PATH

/home/androidusr/logs

NOVNC_VERSION

1.6.0

OPT_PATH

/opt

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-25-openjdk-amd64/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin:/opt/android/platform-tools:/opt/android/build-tools:/opt/android/build-tools

SCREEN_DEPTH

24+32

SCREEN_HEIGHT

900

SCREEN_NUMBER

0

SCREEN_WIDTH

1600

SCRIPT_PATH

docker-android

TZ

UTC

USERID

1300

USERNAME

androidusr

VNC_PORT

5900

WEBSOCKIFY_VERSION

0.13.0

WEB_LOG_PORT

9000

WEB_VNC_PORT

6080

WORK_PATH

/home/androidusr


Layers

[#000] sha256:01d7766a2e4a62b74e0bebf2cd12c47e675e9221174f6570854203e84ffe68b0 - 0.99% (28.4 MB)

[#001] sha256:92c38b72bd6c79c171e96518d2650a3af8280263063baa4b54834836ea3468ed - 10.92% (314 MB)

[#002] sha256:09a81c657355e0ed5c2be2a8fffa6e9dba4c50d28beed7c1dad63f1b9fa25851 - 0.01% (396 KB)

[#003] sha256:03dffd3a29f40942acbf36dcd599de263d628ee3100285a99d5616674a6acfc6 - 7.16% (206 MB)

[#004] sha256:b8cd79a35c7ff1a245c7525d9de153ea43f42b932c4be411e1d0311a0427b772 - 1.62% (46.5 MB)

[#005] sha256:0640b5a20b57ef6d97a3ba45e6238b79584ad63a0c53e6dd67f20ee26f53d608 - 0.0% (3.63 KB)

[#006] sha256:5718cdb85ea7d9320a18e97e525e476420746f4419f86d181003bfd4e3470dd9 - 1.43% (41.2 MB)

[#007] sha256:e3cc3674e2e43d77c954844740a466feca7df1a6d907819679a6068f71cbf98f - 0.56% (16 MB)

[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#009] sha256:70dd11fc157b086835ba346b380328ea1ef8f40591851372b54c09e9d6b72862 - 6.47% (186 MB)

[#010] sha256:c8b9913de1507d49d074a674218dddecec8f17d71cdd273b6cb19c117f8404d8 - 0.0% (214 Bytes)

[#011] sha256:333db790f34306ab75b96a1c14cb82ec01d28a099bf7ae2a052ef984aae57582 - 0.0% (2.71 KB)

[#012] sha256:8bd6028ba7de91bb930bc0d41f8981c58159e31e98ce70e0ceeb4037fe9f33b7 - 0.65% (18.6 MB)

[#013] sha256:0321499acaa5957fa5b7d683874ecb6702f75a82e5f6b31cdaf03011dc41305b - 63.92% (1.79 GB)

[#014] sha256:eb71720ae060ede4fa8f1e377f1bb59b703b54c4729b7f40019375f63a4446f7 - 1.41% (40.6 MB)

[#015] sha256:b109a1cf434ee34691bf110898c9f812ea4048d53ded424653696eebb5de85fc - 0.03% (768 KB)

[#016] sha256:118b3f1f112e39cf88bfbc6f7225f3317ce84437295626c0bbbc2918767087db - 0.0% (177 Bytes)

[#017] sha256:df4608b62e95180084b46151e1a8643dc0ab4e6faa566bf1b75233f10ee2f806 - 0.0% (161 Bytes)

[#018] sha256:21c02b94cd09aa852cfe34b2f3dc51cfa435b1156435a0039dbdf7a877afa1a4 - 0.85% (24.3 MB)

[#019] sha256:0f5787fb04e50eaeac3295b6370b0970f3daa1fc60c57987012c65cd778aa609 - 0.0% (13.4 KB)

[#020] sha256:42ce3e5b93b28f52c9bb74d93ff51a2113fb29b8bfcdfd7eafcb212bc0bab77f - 3.99% (115 MB)

[#021] sha256:1aa75dafaa9aa3ed9306daf0637eee0079b13e6c32bff5a47377bc08d356043b - 0.0% (1.02 KB)

[#022] sha256:ccf6da38035951665a911afcd7a16f56ee4fdc0b61795268bfdf770fe91781a3 - 0.0% (468 Bytes)

[#023] sha256:c69dc1772cb7382cb10823d9b784b679d14fab49381ce4cd3b272d33d356faa6 - 0.0% (155 Bytes)

[#024] sha256:68c95ea4a4c5ba91eb952ff6c2d81d982cb219fb296a2cd3c4418ed782aeea29 - 0.0% (271 Bytes)


History
2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04

2026-02-10 16:49:56 UTC

/bin/sh -c #(nop) ADD file:1ae27d2ef4369361104b699712f3897141e394785df5d193d67b44626f57eb87 in /

2026-02-10 16:49:57 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

ENV DEBIAN_FRONTEND=noninteractive

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get -qqy update && apt dist-upgrade -y && apt-get -qqy --no-install-recommends install libqt5webkit5 openjdk-25-jdk tzdata xvfb && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

ENV TZ=UTC

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c echo "${TZ}" > /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata # buildkit

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-25-openjdk-amd64/bin

2026-03-16 12:13:13 UTC (buildkit.dockerfile.v0)

ENV ANDROID_HOME=/opt/android

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

COPY /opt/android /opt/android # buildkit

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-25-openjdk-amd64/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin:/opt/android/platform-tools:/opt/android/build-tools

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

COPY /usr/local /usr/local # buildkit

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ARG USERNAME=androidusr

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ENV USERNAME=androidusr

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ARG USERPASS=secret

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ARG USERID=1300

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ENV USERID=1300

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ARG GROUPID=1301

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ENV GROUPID=1301

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

RUN |4 USERNAME=androidusr USERPASS=secret USERID=1300 GROUPID=1301 /bin/sh -c groupadd ${USERNAME} --gid ${GROUPID} && useradd ${USERNAME} --uid ${USERID} --gid ${GROUPID} --create-home --shell /bin/bash && echo ${USERNAME}:${USERPASS} | chpasswd # buildkit

2026-03-16 12:13:19 UTC (buildkit.dockerfile.v0)

ENV APPIUM_VERSION=3.2.2

2026-03-16 12:13:30 UTC (buildkit.dockerfile.v0)

RUN |4 USERNAME=androidusr USERPASS=secret USERID=1300 GROUPID=1301 /bin/sh -c npm install -g appium@${APPIUM_VERSION} # buildkit

2026-03-16 12:13:36 UTC (buildkit.dockerfile.v0)

RUN |4 USERNAME=androidusr USERPASS=secret USERID=1300 GROUPID=1301 /bin/sh -c chown -R ${USERID}:${GROUPID} /usr/local/lib/node_modules/appium # buildkit

2026-03-16 12:13:36 UTC (buildkit.dockerfile.v0)

ENV WORK_PATH=/home/androidusr

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

WORKDIR /home/androidusr

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

USER 1300:1301

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_ESPRESSO_VERSION=7.0.0

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_FLUTTER_VERSION=3.5.0

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_GECKO_VERSION=2.1.12

2026-03-16 12:13:37 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_UIAUTOMATOR2_VERSION=7.0.0

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

RUN |4 USERNAME=androidusr USERPASS=secret USERID=1300 GROUPID=1301 /bin/sh -c appium driver install --source=npm appium-espresso-driver@${APPIUM_DRIVER_ESPRESSO_VERSION} && appium driver install --source=npm appium-flutter-driver@${APPIUM_DRIVER_FLUTTER_VERSION} && appium driver install --source=npm appium-geckodriver@${APPIUM_DRIVER_GECKO_VERSION} && appium driver install --source=npm appium-uiautomator2-driver@${APPIUM_DRIVER_UIAUTOMATOR2_VERSION} # buildkit

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

ENV SCRIPT_PATH=appium-docker-android

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

RUN |4 USERNAME=androidusr USERPASS=secret USERID=1300 GROUPID=1301 /bin/sh -c mkdir -p .android && touch ~/.android/repositories.cfg && mkdir -p ${SCRIPT_PATH} # buildkit

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

COPY --chown=1300:1301 . appium-docker-android/ # buildkit

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

ENV APP_PATH=/home/androidusr/appium-docker-android

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

EXPOSE map[4723/tcp:{}]

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["sh" "-c"]

2026-03-16 12:14:16 UTC (buildkit.dockerfile.v0)

CMD ["${WORK_PATH}/${SCRIPT_PATH}/start.sh"]

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

ARG AUTHORS=Budi Utomo

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

LABEL author=Budi Utomo <budtmo.os@gmail.com>

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

USER root

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

RUN |1 AUTHORS=Budi Utomo /bin/sh -c apt-get -qqy update && apt-get -qqy install --no-install-recommends ca-certificates python3-pip socat supervisor unzip wget && apt autoremove -y && apt clean all && rm -rf /var/lib/apt/lists/* && update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # buildkit

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

ARG DOCKER_ANDROID_VERSION=v3.2.2-p0

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

ENV DOCKER_ANDROID_VERSION=v3.2.2-p0

2026-03-19 14:49:16 UTC (buildkit.dockerfile.v0)

EXPOSE map[4723/tcp:{} 5554/tcp:{} 5555/tcp:{}]

2026-03-19 14:51:07 UTC (buildkit.dockerfile.v0)

ARG EMULATOR_ANDROID_VERSION=12.0

2026-03-19 14:51:07 UTC (buildkit.dockerfile.v0)

ARG EMULATOR_API_LEVEL=32

2026-03-19 14:51:07 UTC (buildkit.dockerfile.v0)

ENV EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 EMULATOR_SYS_IMG=x86_64 EMULATOR_IMG_TYPE=google_apis EMULATOR_BROWSER=chrome

2026-03-19 14:51:07 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-25-openjdk-amd64/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin:/opt/android/platform-tools:/opt/android/build-tools:/opt/android/build-tools

2026-03-19 14:51:07 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c yes | sdkmanager --licenses && sdkmanager "platforms;android-${EMULATOR_API_LEVEL}" "system-images;android-${EMULATOR_API_LEVEL};${EMULATOR_IMG_TYPE};${EMULATOR_SYS_IMG}" "emulator" && ln -s ${ANDROID_HOME}/emulator/emulator /usr/bin/ # buildkit

2026-03-19 14:51:23 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c apt-get -qqy update && apt-get -qqy install --no-install-recommends feh libxcomposite-dev openbox x11vnc xterm && apt autoremove -y && apt clean all && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-19 14:51:23 UTC (buildkit.dockerfile.v0)

ENV NOVNC_VERSION=1.6.0 WEBSOCKIFY_VERSION=0.13.0 OPT_PATH=/opt

2026-03-19 14:51:23 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c wget -nv -O noVNC.zip "https://github.com/novnc/noVNC/archive/refs/tags/v${NOVNC_VERSION}.zip" && unzip -x noVNC.zip && rm noVNC.zip && mv noVNC-${NOVNC_VERSION} ${OPT_PATH}/noVNC && wget -nv -O websockify.zip "https://github.com/novnc/websockify/archive/refs/tags/v${WEBSOCKIFY_VERSION}.zip" && unzip -x websockify.zip && mv websockify-${WEBSOCKIFY_VERSION} ${OPT_PATH}/noVNC/utils/websockify && rm websockify.zip && ln ${OPT_PATH}/noVNC/vnc.html ${OPT_PATH}/noVNC/index.html # buildkit

2026-03-19 14:51:23 UTC (buildkit.dockerfile.v0)

ENV DISPLAY=:0 SCREEN_NUMBER=0 SCREEN_WIDTH=1600 SCREEN_HEIGHT=900 SCREEN_DEPTH=24+32 VNC_PORT=5900 WEB_VNC_PORT=6080

2026-03-19 14:51:23 UTC (buildkit.dockerfile.v0)

EXPOSE map[5900/tcp:{} 6080/tcp:{}]

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c rm -rf ${SCRIPT_PATH} # buildkit

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

ENV SCRIPT_PATH=docker-android

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

ENV APP_PATH=/home/androidusr/docker-android

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c mkdir -p ${APP_PATH} # buildkit

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

COPY mixins /home/androidusr/docker-android/mixins # buildkit

2026-03-19 14:51:24 UTC (buildkit.dockerfile.v0)

COPY cli /home/androidusr/docker-android/cli # buildkit

2026-03-19 14:51:44 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c bash /tmp/extension.sh # buildkit

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # buildkit

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c echo ${APP_PATH}/mixins/configs/display/.fehbg >> /etc/xdg/openbox/autostart # buildkit

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

USER 1300:1301

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

ENV LOG_PATH=/home/androidusr/logs WEB_LOG_PORT=9000

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

EXPOSE map[9000/tcp:{}]

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c mkdir -p ${LOG_PATH} # buildkit

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=12.0 EMULATOR_API_LEVEL=32 /bin/sh -c mkdir -p "${WORK_PATH}/.config/Android Open Source Project" && echo "[General]\nshowNestedWarning=false\n" > "${WORK_PATH}/.config/Android Open Source Project/Emulator.conf" # buildkit

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGTERM

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

ENV DEVICE_TYPE=emulator

2026-03-19 14:51:45 UTC (buildkit.dockerfile.v0)

CMD ["${APP_PATH}/mixins/scripts/run.sh"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete