-
Notifications
You must be signed in to change notification settings - Fork 57
Expand file tree
/
Copy pathDockerfile
More file actions
59 lines (49 loc) · 2.04 KB
/
Dockerfile
File metadata and controls
59 lines (49 loc) · 2.04 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# syntax=docker/dockerfile:1.4
# Pinned Android build environment on top of Gradle.
ARG GRADLE_IMAGE=gradle:9.0.0-jdk17
ARG CMDLINE_TOOLS_VERSION=11076708
ARG ANDROID_API_LEVEL=35
ARG ANDROID_BUILD_TOOLS_VERSION=35.0.0
ARG ANDROID_NDK_VERSION=28.1.13356709
ARG JUST_VERSION=1.45.0
FROM ${GRADLE_IMAGE}
USER root
ARG TARGETARCH
ARG CMDLINE_TOOLS_VERSION
ARG ANDROID_API_LEVEL
ARG ANDROID_BUILD_TOOLS_VERSION
ARG ANDROID_NDK_VERSION
ARG JUST_VERSION
ENV HOME=/root
ENV ANDROID_HOME=/opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_SDK_URL=https://dl.google.com/android/repository/commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip
ENV PATH=${ANDROID_HOME}/cmdline-tools/bin:${ANDROID_HOME}/platform-tools:${PATH}
# Runtime deps for build-tools on arm64, amd64 libs are needed for x86_64-only binary (aapt2 etc) under emulation.
COPY scripts/setup-multiarch-apt.sh /usr/local/bin/setup-multiarch-apt
RUN /usr/local/bin/setup-multiarch-apt
# Install just from a pinned release.
RUN case ${TARGETARCH} in \
amd64) JUST_TARGET="x86_64-unknown-linux-musl" ;; \
arm64) JUST_TARGET="aarch64-unknown-linux-musl" ;; \
*) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
esac && \
curl -fL \
"https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-${JUST_TARGET}.tar.gz" \
-o /tmp/just.tar.gz && \
tar -xzf /tmp/just.tar.gz -C /tmp && \
mv /tmp/just /usr/local/bin/just && \
rm -rf /tmp/just*
RUN mkdir -p "${ANDROID_HOME}" /root/.android && \
cd "${ANDROID_HOME}" && \
curl -o sdk.zip "${ANDROID_SDK_URL}" && \
unzip -q sdk.zip && \
rm sdk.zip
RUN --mount=type=cache,target=/root/.android \
yes | ${ANDROID_HOME}/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses && \
${ANDROID_HOME}/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} \
"platform-tools" \
"platforms;android-${ANDROID_API_LEVEL}" \
"build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"ndk;${ANDROID_NDK_VERSION}"
CMD ["bash"]