-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
56 lines (46 loc) · 1.61 KB
/
Dockerfile
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
# https://hub.docker.com/_/rust
ARG rust_ver=1.58
FROM rust:${rust_ver}.1-slim-bullseye
ARG android_ndk_ver=r23b
ARG cargo_ndk_ver=2.5.0
ARG build_rev=1
LABEL org.opencontainers.image.source="\
https://github.com/instrumentisto/cargo-ndk-docker-image"
# Install Rust targets for Android platforms
RUN rustup target add aarch64-linux-android \
armv7-linux-androideabi \
i686-linux-android \
x86_64-linux-android
# Install Android NDK
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends --no-install-suggests \
ca-certificates \
make \
&& update-ca-certificates \
\
# Install installation tools
&& toolDeps="curl unzip" \
&& apt-get install -y --no-install-recommends --no-install-suggests \
$toolDeps \
\
# Install NDK itself
&& curl -fL -o /tmp/android-ndk.zip \
https://dl.google.com/android/repository/android-ndk-${android_ndk_ver}-linux.zip \
&& unzip /tmp/android-ndk.zip -d /usr/local/ \
\
# Cleanup unnecessary stuff
&& apt-get purge -y --auto-remove \
-o APT::AutoRemove::RecommendsImportant=false \
$toolDeps \
&& rm -rf /var/lib/apt/lists/* \
/tmp/*
# Path to the Android NDK for cargo-ndk Cargo plugin
ENV ANDROID_NDK_HOME=/usr/local/android-ndk-${android_ndk_ver} \
NDK_HOME=/usr/local/android-ndk-${android_ndk_ver}
# Install cargo-ndk Cargo plugin
RUN cargo install --version=${cargo_ndk_ver} cargo-ndk \
\
# Cleanup unnecessary stuff
&& rm -rf /usr/local/cargo/registry/ \
/tmp/*