This repository has been archived by the owner on Jan 13, 2024. It is now read-only.
forked from signalapp/zkgroup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
88 lines (71 loc) · 3.19 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
FROM ubuntu:18.04
RUN dpkg --add-architecture i386
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
software-properties-common
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
apt-transport-https \
build-essential \
git \
curl \
wget \
gpg-agent \
openssh-client \
unzip
RUN apt-get install -y --no-install-recommends \
libc6:i386=2.27-3ubuntu1 \
libncurses5:i386=6.1-1ubuntu1.18.04 \
libstdc++6:i386=8.4.0-1ubuntu1~18.04 \
lib32z1=1:1.2.11.dfsg-0ubuntu2
RUN apt-get install -y --no-install-recommends \
openjdk-8-jdk=8u242-b08-0ubuntu3~18.04
RUN rm -rf /var/lib/apt/lists/* && \
apt-get autoremove -y && \
apt-get clean
ARG UID
ARG GID
# Create a user to map the host user to.
RUN groupadd -o -g "${GID}" zkgroup \
&& useradd -m -o -u "${UID}" -g "${GID}" -s /bin/bash zkgroup
USER zkgroup
ENV HOME /home/zkgroup
ENV USER zkgroup
ENV SHELL /bin/bash
WORKDIR /home/zkgroup
# Rust setup...
ARG RUST_TOOLCHAIN=1.41.1
ARG RUST_TOOLCHAIN_SHA=ad1f8b5199b3b9e231472ed7aa08d2e5d1d539198a15c5b1e53c746aad81d27b
ARG CARGO_NDK_VERSION=1.0.0
ENV PATH="/home/zkgroup/.cargo/bin:${PATH}"
RUN curl -f https://static.rust-lang.org/rustup/archive/1.21.1/x86_64-unknown-linux-gnu/rustup-init -o /tmp/rustup-init \
&& echo "${RUST_TOOLCHAIN_SHA} /tmp/rustup-init" | sha256sum -c - \
&& chmod a+x /tmp/rustup-init \
&& /tmp/rustup-init -y --profile minimal --default-toolchain "${RUST_TOOLCHAIN}" \
&& rm -rf /tmp/rustup-init \
&& rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android \
&& cargo install --version ${CARGO_NDK_VERSION} cargo-ndk
# Android SDK setup...
ARG ANDROID_SDK_FILENAME=commandlinetools-linux-6200805_latest.zip
ARG ANDROID_SDK_SHA=f10f9d5bca53cc27e2d210be2cbc7c0f1ee906ad9b868748d74d62e10f2c8275
ARG ANDROID_API_LEVELS=android-28
ARG ANDROID_BUILD_TOOLS_VERSION=28.0.3
ARG NDK_VERSION=21.0.6113669
ENV ANDROID_HOME /home/zkgroup/android-sdk
ENV NDK_HOME ${ANDROID_HOME}/ndk/${NDK_VERSION}
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
RUN wget -q https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} \
&& echo "${ANDROID_SDK_SHA} ${ANDROID_SDK_FILENAME}" | sha256sum -c - \
&& unzip -q ${ANDROID_SDK_FILENAME} -d android-sdk \
&& rm -rf ${ANDROID_SDK_FILENAME} \
&& echo y | ./android-sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "platforms;${ANDROID_API_LEVELS}" \
&& ./android-sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
&& ./android-sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" \
&& ./android-sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} "ndk;${NDK_VERSION}"
# Pre-download Gradle.
COPY gradle gradle
COPY gradlew .
RUN ./gradlew --version
# Convert ssh to https for git dependency access without a key.
RUN git config --global url."https://github".insteadOf ssh://git@github
CMD [ "/bin/bash" ]