summaryrefslogtreecommitdiff
path: root/src/main/docker/android-dev.Dockerfile
blob: 3f7b4b4608f660c58f8943a853788c72dc730139 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#
# Tools for Android development.
#

ARG PARENT_IMAGE=debian:buster-20220622-slim
FROM $PARENT_IMAGE

ARG PKGS_TO_ADD="curl unzip openjdk-11-jdk-headless aapt apksigner zipalign"
ARG PKGS_TO_DEL="curl unzip"
ARG PKGINIT="apt-get update"
ARG PKGADD="apt-get install -y --no-install-recommends"
ARG PKGDEL="apt-get purge -y"
ARG PKGCLEAN="apt-get clean"
ARG PLATFORM_VERSION="22"
ARG BUILD_TOOLS_VERSION="22.0.1"
ARG CMDLINETOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip"

ENV ANDROID_HOME="/usr/lib/android-sdk"
ENV PATH="$PATH:/usr/lib/android-sdk/build-tools/debian:/usr/lib/android-sdk/cmdline-tools/latest/bin:/usr/lib/android-sdk/build-tools/$BUILD_TOOLS_VERSION"

WORKDIR /work

RUN true \
    && $PKGINIT \
    && $PKGADD $PKGS_TO_ADD \
    && (cd /tmp && curl -sSLO "$CMDLINETOOLS_URL") \
    && if test -x /tmp/cmdline-tools; then echo >&2 "[ERROR] /tmp/cmdline-tools already exists"; false; fi \
    && (cd /tmp && unzip $(basename "$CMDLINETOOLS_URL") >/dev/null) \
    && mkdir /usr/lib/android-sdk/cmdline-tools \
    && mkdir /usr/lib/android-sdk/cmdline-tools/latest \
    && mv /tmp/cmdline-tools/* /usr/lib/android-sdk/cmdline-tools/latest/. \
    && yes | sdkmanager --install "platforms;android-$PLATFORM_VERSION" "build-tools;$BUILD_TOOLS_VERSION" \
    # Those for some reason are broken (wrong linker) so use the debian variant.
    && (cd "/usr/lib/android-sdk/build-tools/${BUILD_TOOLS_VERSION:?}" && rm aapt zipalign) \
    && chown 1000:1000 /work \
    && $PKGDEL $PKGS_TO_DEL \
    && $PKGCLEAN \
    && rm -rf /tmp/* \
    && true

USER 1000:1000

CMD ["sleep", "36000"]