FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive ENV ANDROID_HOME=/opt/android-sdk ENV ANDROID_SDK_ROOT=/opt/android-sdk ENV ANDROID_NDK_HOME=/opt/android-sdk/ndk/27.0.12077973 ENV NDK_HOME=/opt/android-sdk/ndk/27.0.12077973 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 ARG ANDROID_CMDLINE_TOOLS_VERSION=13114758 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 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 mkdir -p ${ANDROID_HOME}/cmdline-tools \ && set -eux; \ for version in "${ANDROID_CMDLINE_TOOLS_VERSION}" 13114758 12266719 11076708 10406996; do \ url="https://dl.google.com/android/repository/commandlinetools-linux-${version}_latest.zip"; \ echo "Пробуем скачать Android command line tools: ${url}"; \ if curl -fsSL "${url}" -o /tmp/android-tools.zip; then \ break; \ fi; \ rm -f /tmp/android-tools.zip; \ done; \ test -s /tmp/android-tools.zip; \ unzip -q /tmp/android-tools.zip -d /tmp/android-tools; \ mv /tmp/android-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest; \ rm -rf /tmp/android-tools /tmp/android-tools.zip RUN yes | sdkmanager --licenses >/dev/null \ && sdkmanager \ "platform-tools" \ "platforms;android-35" \ "build-tools;35.0.0" \ "ndk;27.0.12077973" 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 COPY tauri_app/docker/build-android-apk.sh /usr/local/bin/build-android-apk RUN chmod +x /usr/local/bin/build-android-apk CMD ["build-android-apk"]