Files
IdP/tauri_app/Dockerfile.apk

73 lines
2.5 KiB
Docker

FROM ghcr.io/cirruslabs/android-sdk:35-ndk
ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME=/opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV PATH=/root/.cargo/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/usr/local/bin:$PATH
ARG NPM_REGISTRY=https://registry.npmjs.org
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
unzip \
xz-utils \
git \
build-essential \
pkg-config \
libssl-dev \
openjdk-17-jdk \
&& rm -rf /var/lib/apt/lists/*
RUN if [ ! -d "${ANDROID_HOME}" ] && [ -d /opt/android-sdk-linux ]; then ln -s /opt/android-sdk-linux "${ANDROID_HOME}"; fi \
&& (sdkmanager --version || true) \
&& test -d "${ANDROID_HOME}/platforms/android-35" \
&& test -d "${ANDROID_HOME}/build-tools" \
&& test -d "${ANDROID_HOME}/platform-tools" \
&& test -d "${ANDROID_HOME}/ndk"
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
&& apt-get update \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
RUN curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal \
&& rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
WORKDIR /workspace
COPY package.json package-lock.json .npmrc ./
COPY apps/sso-core/package.json ./apps/sso-core/
COPY apps/api-gateway/package.json ./apps/api-gateway/
COPY apps/frontend/package.json ./apps/frontend/
COPY apps/docs/package.json ./apps/docs/
COPY tauri_app/package.json ./tauri_app/
RUN --mount=type=cache,target=/root/.npm \
npm config set registry "${NPM_REGISTRY}" && \
npm ci --no-audit --no-fund
COPY apps/frontend ./apps/frontend
COPY shared ./shared
COPY tsconfig.base.json ./
COPY tauri_app ./tauri_app
RUN sed -i 's/\r$//' tauri_app/docker/*.sh \
&& chmod +x tauri_app/docker/*.sh \
&& cp tauri_app/docker/build-android-apk.sh /usr/local/bin/build-android-apk \
&& chmod +x /usr/local/bin/build-android-apk
ENV ANDROID_AGP_LOCAL_REPO=/opt/android-agp-maven
ENV GRADLE_USER_HOME=/root/.gradle
ENV ANDROID_COMPILE_SDK=35
RUN if [ ! -d "${ANDROID_HOME}" ] && [ -d /opt/android-sdk-linux ]; then ln -s /opt/android-sdk-linux "${ANDROID_HOME}"; fi \
&& ln -sfn android-35 "${ANDROID_HOME}/platforms/android-36" \
&& test -e "${ANDROID_HOME}/platforms/android-36"
RUN /workspace/tauri_app/docker/prefetch-android-agp.sh \
&& /workspace/tauri_app/docker/verify-offline-agp.sh
CMD ["build-android-apk"]