Skip to content

Commit b8fdda5

Browse files
Update Dockerfile
1 parent c35ba0e commit b8fdda5

1 file changed

Lines changed: 67 additions & 96 deletions

File tree

‎Dockerfile‎

Lines changed: 67 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,8 @@
33
FROM ubuntu:24.04
44

55
ARG DEBIAN_FRONTEND=noninteractive
6-
7-
# ------------------------------------------------------------
8-
# Versions
9-
# ------------------------------------------------------------
10-
116
ARG ANDROID_NDK_VERSION=r27c
127

13-
# ------------------------------------------------------------
14-
# Environment
15-
# ------------------------------------------------------------
16-
178
ENV CARGO_HOME=/root/.cargo \
189
RUSTUP_HOME=/root/.rustup \
1910
ANDROID_HOME=/opt/android-sdk \
@@ -22,75 +13,67 @@ ENV CARGO_HOME=/root/.cargo \
2213
ANDROID_NDK_HOME=/opt/android-ndk \
2314
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
2415

25-
ENV PATH="/root/.cargo/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools/latest:${PATH}"
26-
27-
# ------------------------------------------------------------
28-
# System packages
29-
# ------------------------------------------------------------
30-
31-
RUN apt-get update && apt-get install -y --no-install-recommends \
32-
ca-certificates \
33-
curl \
34-
wget \
35-
git \
36-
unzip \
37-
zip \
38-
xz-utils \
39-
file \
40-
pkg-config \
41-
build-essential \
42-
cmake \
43-
ninja-build \
44-
clang \
45-
lld \
46-
llvm \
47-
python3 \
48-
python3-pip \
49-
openjdk-17-jdk \
50-
gcc-multilib \
51-
g++-multilib \
52-
libc6-dev-i386 \
53-
mingw-w64 \
54-
gcc-aarch64-linux-gnu \
55-
g++-aarch64-linux-gnu \
56-
gcc-arm-linux-gnueabihf \
57-
g++-arm-linux-gnueabihf \
16+
ENV PATH="/root/.cargo/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/build-tools/35.0.0:/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
17+
18+
# ============================================================
19+
# System dependencies
20+
# ============================================================
21+
22+
RUN apt-get update \
23+
&& apt-get install -y --no-install-recommends \
24+
ca-certificates \
25+
curl \
26+
wget \
27+
git \
28+
unzip \
29+
zip \
30+
xz-utils \
31+
file \
32+
pkg-config \
33+
build-essential \
34+
cmake \
35+
ninja-build \
36+
clang \
37+
lld \
38+
llvm \
39+
python3 \
40+
python3-pip \
41+
openjdk-17-jdk \
5842
&& rm -rf /var/lib/apt/lists/*
5943

60-
# ------------------------------------------------------------
61-
# Android SDK
62-
# ------------------------------------------------------------
44+
# ============================================================
45+
# Android SDK command-line tools
46+
# ============================================================
6347

6448
ARG ANDROID_CMDLINE_TOOLS=13114758
6549

66-
RUN mkdir -p "${ANDROID_HOME}/cmdline-tools" \
50+
RUN mkdir -p /opt/android-sdk/cmdline-tools \
6751
&& wget -q \
68-
"https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_CMDLINE_TOOLS}_latest.zip" \
69-
-O /tmp/cmdline-tools.zip \
52+
"https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_CMDLINE_TOOLS}_latest.zip" \
53+
-O /tmp/cmdline-tools.zip \
7054
&& unzip -q /tmp/cmdline-tools.zip \
71-
-d "${ANDROID_HOME}/cmdline-tools" \
55+
-d /opt/android-sdk/cmdline-tools \
7256
&& mv \
73-
"${ANDROID_HOME}/cmdline-tools/cmdline-tools" \
74-
"${ANDROID_HOME}/cmdline-tools/latest" \
57+
/opt/android-sdk/cmdline-tools/cmdline-tools \
58+
/opt/android-sdk/cmdline-tools/latest \
7559
&& rm -f /tmp/cmdline-tools.zip
7660

77-
RUN yes | sdkmanager --licenses >/dev/null || true
61+
# ============================================================
62+
# Android SDK
63+
# ============================================================
7864

79-
# ------------------------------------------------------------
80-
# Android SDK packages
81-
# ------------------------------------------------------------
65+
RUN yes | sdkmanager --licenses >/dev/null 2>&1 || true
8266

8367
RUN sdkmanager \
84-
"platform-tools" \
85-
"platforms;android-35" \
86-
"build-tools;35.0.0"
68+
"platform-tools" \
69+
"platforms;android-35" \
70+
"build-tools;35.0.0"
8771

88-
# ------------------------------------------------------------
72+
# ============================================================
8973
# Android NDK
90-
# ------------------------------------------------------------
74+
# ============================================================
9175

92-
RUN mkdir -p /opt \
93-
&& wget -q \
76+
RUN wget -q \
9477
"https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" \
9578
-O /tmp/android-ndk.zip \
9679
&& unzip -q /tmp/android-ndk.zip -d /opt \
@@ -99,37 +82,28 @@ RUN mkdir -p /opt \
9982
"${ANDROID_NDK_ROOT}" \
10083
&& rm -f /tmp/android-ndk.zip
10184

102-
# ------------------------------------------------------------
85+
# ============================================================
10386
# Rust
104-
# ------------------------------------------------------------
87+
# ============================================================
10588

10689
RUN curl --proto '=https' \
107-
--tlsv1.2 \
108-
-sSf https://sh.rustup.rs \
90+
--tlsv1.2 \
91+
-sSf https://sh.rustup.rs \
10992
| sh -s -- -y --profile minimal
11093

111-
# ------------------------------------------------------------
112-
# Rust native targets
113-
# ------------------------------------------------------------
94+
# ============================================================
95+
# Rust Android targets
96+
# ============================================================
11497

11598
RUN rustup target add \
116-
x86_64-unknown-linux-gnu \
117-
i686-unknown-linux-gnu \
118-
aarch64-unknown-linux-gnu \
119-
armv7-unknown-linux-gnueabihf \
120-
x86_64-pc-windows-gnu \
121-
i686-pc-windows-gnu \
122-
aarch64-pc-windows-gnullvm \
123-
x86_64-apple-darwin \
124-
aarch64-apple-darwin \
125-
aarch64-linux-android \
126-
armv7-linux-androideabi \
127-
x86_64-linux-android \
128-
i686-linux-android
129-
130-
# ------------------------------------------------------------
131-
# Android Cargo linkers
132-
# ------------------------------------------------------------
99+
aarch64-linux-android \
100+
armv7-linux-androideabi \
101+
x86_64-linux-android \
102+
i686-linux-android
103+
104+
# ============================================================
105+
# Cargo Android linker configuration
106+
# ============================================================
133107

134108
RUN mkdir -p /root/.cargo \
135109
&& cat > /root/.cargo/config.toml <<'EOF'
@@ -146,9 +120,9 @@ linker = "/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linu
146120
linker = "/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android24-clang"
147121
EOF
148122

149-
# ------------------------------------------------------------
123+
# ============================================================
150124
# Node.js
151-
# ------------------------------------------------------------
125+
# ============================================================
152126

153127
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
154128
&& apt-get update \
@@ -157,9 +131,9 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
157131
&& corepack enable \
158132
&& rm -rf /var/lib/apt/lists/*
159133

160-
# ------------------------------------------------------------
161-
# Verify toolchain
162-
# ------------------------------------------------------------
134+
# ============================================================
135+
# Verification
136+
# ============================================================
163137

164138
RUN rustc --version \
165139
&& cargo --version \
@@ -168,11 +142,8 @@ RUN rustc --version \
168142
&& clang --version \
169143
&& cmake --version \
170144
&& java -version \
171-
&& sdkmanager --version
172-
173-
# ------------------------------------------------------------
174-
# Project
175-
# ------------------------------------------------------------
145+
&& sdkmanager --version \
146+
&& ndk-build --version
176147

177148
WORKDIR /workspace
178149

0 commit comments

Comments
 (0)