mirror of
https://github.com/syncthing/syncthing-android.git
synced 2024-11-25 22:01:16 +00:00
b03c7d4ded
- Use ndk 21 due to Go bug: https://github.com/golang/go/issues/42655 - Use pre-built clang binaries instead of building ourselves - Build syncthing when creating container to prepopulate modules
50 lines
1.6 KiB
Docker
50 lines
1.6 KiB
Docker
FROM openjdk:8
|
|
|
|
ENV GO_VERSION 1.15.7
|
|
ENV ANDROID_SDK_VERSION 3859397
|
|
|
|
WORKDIR /opt
|
|
|
|
# Install Go
|
|
RUN wget -q https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && \
|
|
tar -zxf go${GO_VERSION}.linux-amd64.tar.gz && \
|
|
rm go${GO_VERSION}.linux-amd64.tar.gz
|
|
ENV GOROOT /opt/go
|
|
ENV PATH /opt/go/bin:${PATH}
|
|
|
|
# Install Android SDK manager
|
|
RUN mkdir -p /opt/android-sdk && cd /opt/android-sdk && \
|
|
wget -q https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && \
|
|
unzip -q sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && \
|
|
rm sdk-tools-linux-${ANDROID_SDK_VERSION}.zip
|
|
ENV ANDROID_HOME /opt/android-sdk
|
|
|
|
# Accept the SDK license, as we can't install packages otherwise
|
|
RUN yes | ${ANDROID_HOME}/tools/bin/sdkmanager --licenses > /dev/null
|
|
|
|
# NDK version (r22 fails to build)
|
|
ENV NDK_VERSION 21.4.7075529
|
|
|
|
# Install other android packages, including NDK
|
|
RUN ${ANDROID_HOME}/tools/bin/sdkmanager tools platform-tools "build-tools;29.0.3" "platforms;android-29" "extras;android;m2repository" "ndk;${NDK_VERSION}"
|
|
|
|
# Accept licenses of newly installed packages
|
|
RUN yes | ${ANDROID_HOME}/tools/bin/sdkmanager --licenses
|
|
|
|
# Setup the NDK path
|
|
ENV ANDROID_NDK_HOME ${ANDROID_HOME}/ndk/${NDK_VERSION}
|
|
|
|
# Enable prebuild mode
|
|
ENV SYNCTHING_ANDROID_PREBUILT 1
|
|
|
|
# Set location of go cache
|
|
ENV GOCACHE /opt/gocache
|
|
|
|
# Set location of GOPATH to persist packages for module builds in GOPATH/pkg/mod
|
|
ENV GOPATH /opt/gopath
|
|
|
|
# Run prebuild script (will prebuild stuff into the image if env var is set)
|
|
ADD prebuild.sh /opt/prebuild.sh
|
|
RUN /opt/prebuild.sh
|
|
|
|
WORKDIR /mnt
|