Namespace
budtmo
Image / Tag
docker-android:emulator_14.0_v2.19.0-p0
Content Digest
sha256:4f5a54231429b16c537fc21f76a3b1ce221c530ed4a48ae616c40c2401f25aaf
Details
Created

2025-06-26 23:08:35 UTC

Size

2.87 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_BUILD_TOOLS_VERSION

34.0.0

ANDROID_DOWNLOAD_PATH

/home/androidusr/cmdline-tools

ANDROID_FOLDER_NAME

cmdline-tools

ANDROID_HOME

/opt/android

ANDROID_TOOL_HOME

/opt/android/cmdline-tools

APPIUM_DRIVER_ESPRESSO_VERSION

4.1.13

APPIUM_DRIVER_FLUTTER_INTEGRATION_VERSION

1.2.0

APPIUM_DRIVER_FLUTTER_VERSION

2.17.0

APPIUM_DRIVER_GECKO_VERSION

1.4.3

APPIUM_DRIVER_UIAUTOMATOR2_VERSION

4.2.3

APPIUM_VERSION

2.19.0

APP_PATH

/home/androidusr/docker-android

DEBIAN_FRONTEND

noninteractive

DEVICE_TYPE

emulator

DISPLAY

:0

DOCKER_ANDROID_VERSION

v2.19.0-p0

EMULATOR_ANDROID_VERSION

14.0

EMULATOR_API_LEVEL

34

EMULATOR_BROWSER

chrome

EMULATOR_IMG_TYPE

google_apis

EMULATOR_SYS_IMG

x86_64

JAVA_HOME

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

LOG_PATH

/home/androidusr/logs

NODE_VERSION

22

NOVNC_VERSION

1.4.0

OPT_PATH

/opt

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/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

SDK_VERSION

commandlinetools-linux-11076708_latest

TZ

UTC

VNC_PORT

5900

WEBSOCKIFY_VERSION

0.11.0

WEB_LOG_PORT

9000

WEB_VNC_PORT

6080

WORK_PATH

/home/androidusr


Layers

[#000] sha256:d9d352c11bbd3880007953ed6eec1cbace76898828f3434984a0ca60672fdf5a - 0.96% (28.3 MB)

[#001] sha256:11bd74f5081789904ea570c2626d353659cc4abb31350ea4d3763c9d815ea466 - 11.8% (347 MB)

[#002] sha256:214b2b7b5ecc01ee6f4433061e5ba1a5d1fbb29d8275b67a346e62d393e123e1 - 0.01% (396 KB)

[#003] sha256:174cf87385ad46d880a41a1e45e6ba9509aad613985ab71b25a0b5820acaca67 - 0.0% (4.39 KB)

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

[#005] sha256:d816bb8d80ef5ec9284b2ae8f32ff5effea2d9675bfbb5adfe6c1e982260e326 - 4.32% (127 MB)

[#006] sha256:b93ad58afd448b191e154d95d4c8c457ef0ad8386dbfbe92842b39777adf341a - 2.24% (66 MB)

[#007] sha256:297e90acd7e242ca6e436d8d787016b61104cde309fc63f4e1656013e051061d - 4.9% (144 MB)

[#008] sha256:ee4b0ee5e09a3718d07167a3567d48922020eb0927143fc5e6dd54ebd6a99702 - 0.65% (19.2 MB)

[#009] sha256:9a988a5a16187fd69635f19709f0143d14917196cc925e76f162300518abb61d - 0.0% (162 Bytes)

[#010] sha256:65e9659134b49c098ef488b7fa77514e1e069074a6c2ce0740d06c139e7deadb - 0.0% (1.87 KB)

[#011] sha256:ab90c2b6cbbceb5fbda4c7e2413f8832b9142642b1292149f0dd43a7f3fe49c2 - 0.0% (1.87 KB)

[#012] sha256:44a5afeeaebeea00f7eeee06604e66ae85445b3ed8103d09bd35c06fa4b1a14b - 8.28% (244 MB)

[#013] sha256:c5dc7b5de10c0b417b611e82730f5e30cb39ae661dd0fa23b9c6f14b87bfbdb5 - 0.06% (1.78 MB)

[#014] sha256:d4a357f4191883c471036f7b677df8622b60570cb70022e8a541ce2e94b6442e - 0.2% (5.78 MB)

[#015] sha256:3688a90dc063d30d14e0427edd2cc3260d2278493bc3b17502943714ab3480df - 63.06% (1.81 GB)

[#016] sha256:79988afab2ec2385c0f11cfaa8134d7878990cfd0897c231152e5da68ebc5cdc - 1.11% (32.6 MB)

[#017] sha256:1bad76c89bc27818a1409cba6c5b50e0321d703f1900dd87b7409fc49168ef76 - 0.02% (741 KB)

[#018] sha256:805b0f26aa7053ee04eeaff44e4ed950b0b083f734ee26051eff2a9f730c980c - 0.0% (176 Bytes)

[#019] sha256:a2fcbcd8e7a6ff07c07971572bd4ca10811e73b016e1d5b628929d6325fb6289 - 0.0% (160 Bytes)

[#020] sha256:ea459ba50c17a4e33938050bab5daeb2aa17b2d32bc4da6e1488e8260a06a46e - 0.83% (24.3 MB)

[#021] sha256:8a890ec2128a8c68d9cb1c29a58330d4d4de0717444ba323c4227dfe1296ec6c - 0.0% (12.9 KB)

[#022] sha256:afb68b22f4f6ebfc588040030c385aea0021d25909ca66bb3fcaa9df8c14673f - 1.55% (45.5 MB)

[#023] sha256:e49e5f16da661430faeb693d732fb0c092aec47b845aea7c4163932084d7cd1f - 0.0% (464 Bytes)

[#024] sha256:55239cbec81e0aa5edd0242ddf73de34acfcfed5cf3e0873e017292d7999b573 - 0.0% (154 Bytes)

[#025] sha256:0b40bc7a88f92a2a739550026351a146a67101ae213aed8e61a48e3609932863 - 0.0% (269 Bytes)


History
2025-05-29 04:20:59 UTC

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

2025-05-29 04:20:59 UTC

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

2025-05-29 04:20:59 UTC

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

2025-05-29 04:20:59 UTC

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

2025-05-29 04:21:01 UTC

/bin/sh -c #(nop) ADD file:598ca0108009b5c2e9e6f4fc4bd19a6bcd604fccb5b9376fac14a75522a5cfa3 in /

2025-05-29 04:21:01 UTC

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

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV DEBIAN_FRONTEND=noninteractive

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get -qqy update && apt dist-upgrade -y && apt-get -qqy --no-install-recommends install ca-certificates curl gnupg libqt5webkit5 openjdk-17-jdk sudo tzdata unzip wget xvfb zip ffmpeg && rm -rf /var/lib/apt/lists/* # buildkit

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

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

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV TZ=UTC

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

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

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ARG USER_PASS=secret

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c groupadd androidusr --gid 1301 && useradd androidusr --uid 1300 --gid 1301 --create-home --shell /bin/bash && usermod -aG sudo androidusr && echo androidusr:${USER_PASS} | chpasswd && echo 'androidusr ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers # buildkit

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

WORKDIR /home/androidusr

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV SDK_VERSION=commandlinetools-linux-11076708_latest

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV ANDROID_FOLDER_NAME=cmdline-tools

2025-06-26 13:38:31 UTC (buildkit.dockerfile.v0)

ENV ANDROID_DOWNLOAD_PATH=/home/androidusr/cmdline-tools ANDROID_HOME=/opt/android ANDROID_TOOL_HOME=/opt/android/cmdline-tools

2025-06-26 13:38:33 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c wget -O tools.zip https://dl.google.com/android/repository/${SDK_VERSION}.zip && unzip tools.zip && rm tools.zip && chmod a+x -R ${ANDROID_DOWNLOAD_PATH} && chown -R 1300:1301 ${ANDROID_DOWNLOAD_PATH} && mkdir -p ${ANDROID_TOOL_HOME} && mv ${ANDROID_DOWNLOAD_PATH} ${ANDROID_TOOL_HOME}/tools # buildkit

2025-06-26 13:38:33 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin

2025-06-26 13:38:39 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c mkdir -p ~/.android && touch ~/.android/repositories.cfg && echo y | sdkmanager "platform-tools" && echo y | sdkmanager "build-tools;$ANDROID_BUILD_TOOLS_VERSION" && mv ~/.android .android && chown -R 1300:1301 .android # buildkit

2025-06-26 13:38:39 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin:/opt/android/platform-tools:/opt/android/build-tools

2025-06-26 13:38:39 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=22

2025-06-26 13:38:39 UTC (buildkit.dockerfile.v0)

ENV APPIUM_VERSION=2.19.0

2025-06-26 13:39:01 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash && apt-get -qqy install nodejs && npm install -g appium@${APPIUM_VERSION} && exit 0 && npm cache clean && apt-get remove --purge -y npm && apt-get autoremove --purge -y && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && apt-get clean # buildkit

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c chown -R 1300:1301 /usr/lib/node_modules/appium # buildkit

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV SCRIPT_PATH=appium-docker-android

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c mkdir -p ${SCRIPT_PATH} # buildkit

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

COPY start.sh generate_selenium_config.sh wireless_autoconnect.sh wireless_connect.sh appium-docker-android/ # buildkit

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /bin/sh -c chown -R 1300:1301 ${SCRIPT_PATH} # buildkit

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

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

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

USER 1300:1301

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_ESPRESSO_VERSION=4.1.13

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_FLUTTER_VERSION=2.17.0

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_FLUTTER_INTEGRATION_VERSION=1.2.0

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_GECKO_VERSION=1.4.3

2025-06-26 13:39:05 UTC (buildkit.dockerfile.v0)

ENV APPIUM_DRIVER_UIAUTOMATOR2_VERSION=4.2.3

2025-06-26 13:39:48 UTC (buildkit.dockerfile.v0)

RUN |1 USER_PASS=secret /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-flutter-integration-driver@${APPIUM_DRIVER_FLUTTER_INTEGRATION_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

2025-06-26 13:39:48 UTC (buildkit.dockerfile.v0)

EXPOSE map[4723/tcp:{}]

2025-06-26 13:39:48 UTC (buildkit.dockerfile.v0)

CMD ["/bin/sh" "-c" "./${SCRIPT_PATH}/start.sh"]

2025-06-26 23:06:04 UTC (buildkit.dockerfile.v0)

ARG AUTHORS=Budi Utomo

2025-06-26 23:06:04 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:06:04 UTC (buildkit.dockerfile.v0)

USER root

2025-06-26 23:06:04 UTC (buildkit.dockerfile.v0)

RUN |1 AUTHORS=Budi Utomo /bin/sh -c apt-get -qqy update && apt-get -qqy install --no-install-recommends socat supervisor && apt autoremove -y && apt clean all && rm -rf /var/lib/apt/lists/* # buildkit

2025-06-26 23:06:10 UTC (buildkit.dockerfile.v0)

RUN |1 AUTHORS=Budi Utomo /bin/sh -c apt-get -qqy update && apt-get -qqy --no-install-recommends install python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/* && update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # buildkit

2025-06-26 23:06:10 UTC (buildkit.dockerfile.v0)

ARG DOCKER_ANDROID_VERSION=v2.19.0-p0

2025-06-26 23:06:10 UTC (buildkit.dockerfile.v0)

ENV DOCKER_ANDROID_VERSION=v2.19.0-p0

2025-06-26 23:06:10 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:10 UTC (buildkit.dockerfile.v0)

ARG EMULATOR_ANDROID_VERSION=14.0

2025-06-26 23:08:10 UTC (buildkit.dockerfile.v0)

ARG EMULATOR_API_LEVEL=34

2025-06-26 23:08:10 UTC (buildkit.dockerfile.v0)

ENV EMULATOR_ANDROID_VERSION=14.0 EMULATOR_API_LEVEL=34 EMULATOR_SYS_IMG=x86_64 EMULATOR_IMG_TYPE=google_apis EMULATOR_BROWSER=chrome

2025-06-26 23:08:10 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/opt/android/cmdline-tools/tools:/opt/android/cmdline-tools/tools/bin:/opt/android/platform-tools:/opt/android/build-tools:/opt/android/build-tools

2025-06-26 23:08:10 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=14.0 EMULATOR_API_LEVEL=34 /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

2025-06-26 23:08:18 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:18 UTC (buildkit.dockerfile.v0)

ENV NOVNC_VERSION=1.4.0 WEBSOCKIFY_VERSION=0.11.0 OPT_PATH=/opt

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=14.0 EMULATOR_API_LEVEL=34 /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

2025-06-26 23:08:19 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

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

ENV SCRIPT_PATH=docker-android

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

ENV WORK_PATH=/home/androidusr

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

ENV APP_PATH=/home/androidusr/docker-android

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:19 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

USER 1300:1301

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

EXPOSE map[9000/tcp:{}]

2025-06-26 23:08:34 UTC (buildkit.dockerfile.v0)

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

2025-06-26 23:08:35 UTC (buildkit.dockerfile.v0)

RUN |2 EMULATOR_ANDROID_VERSION=14.0 EMULATOR_API_LEVEL=34 /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

2025-06-26 23:08:35 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGTERM

2025-06-26 23:08:35 UTC (buildkit.dockerfile.v0)

ENV DEVICE_TYPE=emulator

2025-06-26 23:08:35 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/home/androidusr/docker-android/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