Докер не может найти каталог Android SDK и NDK - PullRequest
1 голос
/ 09 апреля 2019

Я создал докер-контейнер, чтобы запускать на нем свои задачи. Я загружаю sdk внутри него, но когда я запускаю задачу извне, она говорит, что папка sdk не может быть найдена, потому что она получает путь, который я указал в файле local.properties проекта. Который указывает на папку моей машины SDK. Как я могу указать папку sdk внутри образа докера? Спасибо.

Файл сборки образа Docker:

FROM openjdk:8

ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" \
    ANDROID_HOME="/usr/local/android-sdk" \
    ANDROID_NDK_HOME="/usr/local/android-sdk/ndk-bundle" \
    ANDROID_VERSION=26 \
    ANDROID_BUILD_TOOLS_VERSION=26.0.2

# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
    && cd "$ANDROID_HOME" \
    && curl -o sdk.zip $SDK_URL \
    && unzip sdk.zip \
    && rm sdk.zip \
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

# add to PATH
ENV PATH ${PATH}:${ANDROID_HOME}

ENV ANDROID_NDK_HOME /usr/local/android-ndk
ENV ANDROID_NDK_VERSION r19
ENV NDK_URL="https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip"

# Download Android NDK
RUN mkdir "$ANDROID_NDK_HOME" \
    && cd "$ANDROID_NDK_HOME" \
    && curl -o ndk.zip $NDK_URL \
    && unzip ndk.zip \
    && rm ndk.zip

# add to PATH
ENV PATH ${PATH}:${ANDROID_NDK_HOME}

# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
    "platforms;android-${ANDROID_VERSION}" \
    "platform-tools"

RUN mkdir /application
WORKDIR /application

Вот как я запускаю задачу:

docker run -it --rm -v "$PWD":/application packsdkandroiddocker.image sh -c "$@" ./gradlew clean

И это ошибка, которую я получаю:

В NDK отсутствует каталог "платформы". Если вы используете NDK, проверьте для ndk.dir задан допустимый каталог NDK. В настоящее время установлено значение / Users / adalpari / Library / Android / SDK / NDK-расслоение. Если вы не используете NDK, сбросьте переменную NDK из ANDROID_NDK_HOME или local.properties убрать это предупреждение.

FAILURE: сборка не удалась, исключение.

  • Что пошло не так: возникла проблема при настройке проекта ': app'. Каталог SDK '/ Users / adalpari / Library / Android / sdk' не существует.

1 Ответ

0 голосов
/ 19 мая 2019

Я думаю, вам нужно удалить файл local.properties из корневой папки, так как в SDK выполняется локальный поиск, к какому контейнеру он не может получить доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...