onnxruntime/tools/android_custom_build/Dockerfile
Changming Sun d53324d4a7
Update cmake version in a few places (#15775)
### Description
They were missed in #15707 , because they are not in common places for Dockerfiles.

Though this commit updated tools/ci_build/github/pai/rocm-ci-pipeline-env.Dockerfile, it won't automatically take effect. The image needs to be manually generated and pushed to a place, and before doing that our CMakeLists.txt also needs to be tweaked a little bit.
2023-05-02 22:56:28 -07:00

80 lines
3 KiB
Docker

# --------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# --------------------------------------------------------------
# Dockerfile for ONNX Runtime Android package build environment
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
# install utilities and ORT dependencies
RUN apt-get update && apt-get install --yes --no-install-recommends \
aria2 curl \
build-essential \
ca-certificates \
git \
ninja-build \
openjdk-11-jdk-headless \
python3-dev \
python3-numpy \
python3-pip \
python3-setuptools \
python3-wheel \
unzip
# cmake
RUN CMAKE_VERSION=3.26.3 && \
aria2c -q -d /tmp -o cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz \
--checksum=sha-256=28d4d1d0db94b47d8dfd4f7dec969a3c747304f4a28ddd6fd340f553f2384dc2 \
https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \
tar -zxf /tmp/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz --strip=1 -C /usr
# gradle
# Note: A system-installed gradle is not required in more recent versions of ORT which use an included gradle wrapper,
# but keep it around to support building older versions.
RUN GRADLE_VERSION=6.8.3 && \
aria2c -q -d /tmp -o gradle-${GRADLE_VERSION}-bin.zip \
--checksum=sha-256=7faa7198769f872826c8ef4f1450f839ec27f0b4d5d1e51bade63667cbccd205 \
https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
mkdir /opt/gradle && \
unzip -d /opt/gradle /tmp/gradle-${GRADLE_VERSION}-bin.zip && \
ln -s /opt/gradle/gradle-${GRADLE_VERSION}/bin/gradle /usr/bin
# flatbuffers
RUN python3 -m pip install flatbuffers==2.0
# configure user and set up workspace directory
ARG BUILD_UID=1001
ARG BUILD_USER=onnxruntimedev
RUN adduser --gecos "onnxruntime Build User" --disabled-password --uid ${BUILD_UID} ${BUILD_USER} && \
mkdir /workspace && \
chown ${BUILD_USER} /workspace
USER ${BUILD_USER}
WORKDIR /workspace
# install Android SDK and tools
ENV ANDROID_HOME=~/android-sdk
ENV NDK_VERSION=25.0.8775105
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/${NDK_VERSION}
RUN aria2c -q -d /tmp -o cmdline-tools.zip \
--checksum=sha-256=0bebf59339eaa534f4217f8aa0972d14dc49e7207be225511073c661ae01da0a \
https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip && \
unzip /tmp/cmdline-tools.zip -d /tmp/cmdline-tools && \
mkdir -p ${ANDROID_HOME}/cmdline-tools && \
mv /tmp/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest
RUN yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses
RUN ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install \
"platforms;android-32" \
"ndk;${NDK_VERSION}"
# get ORT repo
ARG ONNXRUNTIME_REPO=https://github.com/microsoft/onnxruntime.git
ARG ONNXRUNTIME_BRANCH_OR_TAG=main
RUN git clone --single-branch --branch=${ONNXRUNTIME_BRANCH_OR_TAG} --recurse-submodules ${ONNXRUNTIME_REPO} \
/workspace/onnxruntime
# add scripts
COPY --chown=${BUILD_UID} scripts /workspace/scripts