android_build (sha256:ab0983eddcbdce2cf7f8e1bf9e1dd2cecdded4b27d56cc0a6b78dad2d03fe905)

Published 2026-08-01 22:41:11 +02:00 by daniel

Installation

docker pull dev.spittank.org/daniel/android_build@sha256:ab0983eddcbdce2cf7f8e1bf9e1dd2cecdded4b27d56cc0a6b78dad2d03fe905
sha256:ab0983eddcbdce2cf7f8e1bf9e1dd2cecdded4b27d56cc0a6b78dad2d03fe905

Image layers

# debian.sh --arch 'amd64' out/ 'bookworm' '@1783900800'
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
ENV PYTHON_VERSION=3.14.6
ENV PYTHON_SHA256=143b1dddefaec3bd2e21e3b839b34a2b7fb9842272883c576420d605e9f30c63
RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev libzstd-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
CMD ["python3"]
ARG DEBIAN_FRONTEND=noninteractive
ARG ANDROID_SDK_ROOT=/opt/android-sdk
ARG ANDROID_CMDLINE_TOOLS_VERSION=15859902
ARG ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583
ARG GRADLE_VERSION=9.3.1
ARG GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_HOME=/opt/android-sdk
ENV JAVA_HOME=/opt/java-home
ENV GRADLE_HOME=/opt/gradle/gradle-9.3.1
ENV GRADLE_USER_HOME=/opt/gradle-cache
ENV ZENSICAL_VENV=/opt/zensical-venv
ENV RUSTYHAMA_TEST_VENV=/opt/rustyhama-test-venv
ENV PYTHONPATH=.
ENV PATH=/opt/rustyhama-test-venv/bin:/opt/zensical-venv/bin:/opt/gradle/gradle-9.3.1/bin:/opt/java-home/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/build-tools/36.0.0
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
RUN |6 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends bash build-essential ca-certificates git libffi-dev libssl-dev openjdk-17-jdk-headless python3 python3-pip python3-venv unzip wget zip && rm -rf /var/lib/apt/lists/* && useradd --create-home --uid 1000 node && ln -s "$(dirname "$(dirname "$(readlink -f "$(command -v javac)")")")" "${JAVA_HOME}" # buildkit
RUN |6 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 /bin/sh -c wget -qO /tmp/gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" && echo "${GRADLE_SHA256} /tmp/gradle.zip" | sha256sum -c - && mkdir -p /opt/gradle && unzip -q /tmp/gradle.zip -d /opt/gradle && rm /tmp/gradle.zip # buildkit
RUN |6 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 /bin/sh -c mkdir -p "${ANDROID_SDK_ROOT}/cmdline-tools" && wget -qO /tmp/android-commandlinetools.zip "https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_CMDLINE_TOOLS_VERSION}_latest.zip" && echo "${ANDROID_CMDLINE_TOOLS_SHA256} /tmp/android-commandlinetools.zip" | sha256sum -c - && unzip -q /tmp/android-commandlinetools.zip -d /tmp/android-cmdline-tools && mv /tmp/android-cmdline-tools/cmdline-tools "${ANDROID_SDK_ROOT}/cmdline-tools/latest" && "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/android" --no-metrics --sdk="${ANDROID_SDK_ROOT}" sdk install "platform-tools" "platforms/android-36" "build-tools/36.0.0" && yes | "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" --sdk_root="${ANDROID_SDK_ROOT}" --licenses >/dev/null && find "${ANDROID_SDK_ROOT}/build-tools/36.0.0" "${ANDROID_SDK_ROOT}/platform-tools" "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin" -type f -perm -0100 -exec chmod go+rx {} + && rm -rf /tmp/android-commandlinetools.zip /tmp/android-cmdline-tools "${ANDROID_SDK_ROOT}/.temp" /root/.android/cache # buildkit
RUN |6 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 /bin/sh -c pip3 install --break-system-packages --no-cache-dir "fdroidserver==2.4.5" # buildkit
ARG ZENSICAL_REFRESH=20260801202737
RUN |7 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 ZENSICAL_REFRESH=20260801202737 /bin/sh -c echo "Refreshing Zensical packages (${ZENSICAL_REFRESH})" && python3 -m venv "${ZENSICAL_VENV}" && "${ZENSICAL_VENV}/bin/pip" install --no-cache-dir --upgrade zensical # buildkit
RUN |7 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 ZENSICAL_REFRESH=20260801202737 /bin/sh -c python3 -m venv "${RUSTYHAMA_TEST_VENV}" && "${RUSTYHAMA_TEST_VENV}/bin/pip" install --no-cache-dir "homeassistant>=2026.7.0,<2026.8" "mypy>=1.17" "pytest>=8.4" "pytest-asyncio>=1.1" "pytest-homeassistant-custom-component>=0.13.280" "ruff>=0.12" # buildkit
RUN |7 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 ZENSICAL_REFRESH=20260801202737 /bin/sh -c install -d -o node -g node /workspace "${GRADLE_USER_HOME}" /home/node/.android && chown -R node:node "${GRADLE_USER_HOME}" /home/node/.android # buildkit
COPY --chown=node:node gradle-cache-seed /tmp/gradle-cache-seed # buildkit
USER node
RUN |7 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 ZENSICAL_REFRESH=20260801202737 /bin/sh -c gradle --no-daemon -p /tmp/gradle-cache-seed :assembleDebug :assembleRelease && gradle --offline --no-daemon -p /tmp/gradle-cache-seed clean :assembleDebug :assembleRelease && rm -rf /tmp/gradle-cache-seed "${GRADLE_USER_HOME}/daemon" "${GRADLE_USER_HOME}/notifications" "${GRADLE_USER_HOME}/.tmp" # buildkit
RUN |7 DEBIAN_FRONTEND=noninteractive ANDROID_SDK_ROOT=/opt/android-sdk ANDROID_CMDLINE_TOOLS_VERSION=15859902 ANDROID_CMDLINE_TOOLS_SHA256=4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583 GRADLE_VERSION=9.3.1 GRADLE_SHA256=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06 ZENSICAL_REFRESH=20260801202737 /bin/sh -c node --version && java -version && test "$(gradle --version | sed -n 's/^Gradle //p' | head -n1)" = "${GRADLE_VERSION}" && fdroid --version && python3 --version && zensical --version && pytest --version && test -f "${ANDROID_SDK_ROOT}/platforms/android-36/android.jar" && test -x "${ANDROID_SDK_ROOT}/build-tools/36.0.0/aapt" && test -x "${ANDROID_SDK_ROOT}/build-tools/36.0.0/aapt2" && test -x "${ANDROID_SDK_ROOT}/build-tools/36.0.0/apksigner" && test -x "${ANDROID_SDK_ROOT}/platform-tools/adb" # buildkit
WORKDIR /workspace
CMD ["bash"]
Details
Container
2026-08-01 22:41:11 +02:00
216
OCI / Docker
linux/amd64
1.6 GiB
Versions (1) View all
latest 2026-08-01