«Лицензия Android SDK не принята в Dockerfile для Windows Server Core в Docker»Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 «Лицензия Android SDK не принята в Dockerfile для Windows Server Core в Docker»

Сообщение Anonymous »

Я пытаюсь настроить образ Docker на базе Windows Server Core для автоматизации установки Android SDK, Java и связанных инструментов, таких как Appium и Robot Framework. Цель состоит в том, чтобы создать среду сборки на Windows Server 2019 (ltsc2019), которая автоматически устанавливает и настраивает компоненты Android SDK.
Однако у меня возникают проблемы с отсутствием лицензий SDK. принимается в процессе сборки Docker, несмотря на использование echo y | sdkmanager --licenses подходит для их принятия. Сборка завершается с ошибкой при попытке установить компоненты Android SDK, такие как платформы;android-33 или system-images;android-33;google_apis;x86_64. Ниже приведен мой файл Docker:
dockerfile:
Используйте базовый образ Windows Server Core для Windows Server 2019
FROM mcr.microsoft.com/windows/servercore:ltsc2019
Установите зависимости с помощью PowerShell
RUN powershell -Command

"Invoke-WebRequest -Uri 'https://download.oracle.com/java/17/lat ... 64_bin.zip' -OutFile 'jdk.zip';

Развернуть- Archive -Path '.\jdk.zip' -DestinationPath 'C:\Program Files\Java'

Remove-Item -Force 'jdk.zip'

Вызов; -WebRequest -Uri 'https://redirector.gvt1.com/edgedl/andr ... indows.zip' -OutFile 'android-studio.zip' ;

Развернуть-Архив -Путь 'android-studio.zip' -DestinationPath 'C:\Program Files'

Удалить-Item -Force 'android-studio.zip; ';

New-Item -Path 'C:\Android\cmdline-tools' -ItemType Directory

Invoke-WebRequest -Uri 'https://dl.google .com/android/repository/commandlinetools-win-7302050_latest.zip' -OutFile 'sdk-tools.zip';

Развернуть-Архив -Путь 'sdk-tools.zip' -DestinationPath 'C:\Android\cmdline-tools';

Remove-Item -Force 'sdk-tools.zip';"
Установить переменные среды
ENV JAVA_HOME= "C:\Program Files\Java\jdk-17.0.12"
ENV PATH="${JAVA_HOME}\bin;C:\Program Files\nodejs;C:\Python310\;C:\Android\cmdline -tools\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;%PATH%"
ENV ANDROID_HOME="C:\Android"
Принятие лицензии с помощью метод echo y
RUN powershell -Command

"$licenses = @('platforms;android-33', 'platform-tools', 'system-images ;android-33;google_apis;x86_64', 'эмулятор');

foreach ($license in $licenses) {

Start-Process -FilePath 'cmd.exe' -ArgumentList '/c', 'echo y | C:\Android\cmdline-tools\cmdline-tools\bin\sdkmanager.bat', $license, '--sdk_root=C:\Android' -NoNewWindow -Wait;

}"
Установить компоненты Android SDK
ЗАПУСК powershell -Command "& 'C:\Android\cmdline- инструменты\cmdline-tools\bin\sdkmanager.bat' --update"
RUN powershell -Command "& 'C:\Android\cmdline-tools\cmdline-tools\bin\sdkmanager.bat' 'platform-tools ' 'эмулятор' 'платформы;android-33' 'system-images;android-33;google_apis;x86_64'"
Установите Python, Node.js и Appium (опущено для краткости)
(Дополнительные шаги по настройке для Python, Node.js и Robot Framework)
Установите точку входа для выполнения скрипта
ENTRYPOINT ["powershell.exe", "C:\script.ps1"]
Что я пробовал:
Использование echo y | sdkmanager -- Licenses для принятия лицензий.
Создан цикл PowerShell для обработки каждой лицензии с помощью Start-Process с cmd.exe, чтобы обеспечить правильность передачи данных по конвейеру.
Проверено, установлены ли инструменты Android SDK и пути к среде. правильно в контейнере.
Несмотря на это, когда образ докера собирается, я получаю приведенное ниже предупреждение во время сборки образа.
"Принять? (да/нет): пропуск следующих пакетов, поскольку лицензия не принимается:
Android SDK Platform 33
Эмулятор Android
API Google Intel x86_64 Образ системы Atom
Инструменты платформы Android SDK
Следующие пакеты невозможно установить, поскольку их лицензии или лицензии пакетов, от которых они зависят, не были приняты:
system-images;android-33;google_apis;x86_64
platform-tools
платформы;android-33
эмулятор"
Вопрос:
Как правильно автоматизировать прием лицензий Android SDK в Docker-контейнере на базе Windows Server Core Существуют ли какие-либо конкретные конфигурации или альтернативные методы, обеспечивающие принятие лицензий в процессе сборки?
Дополнительная информация:
Базовый образ: Windows Server Core 2019 (ltsc2019)
Версия Java: JDK 17
Android SDK: инструменты командной строки версии 7302050
Python, Node.js, Appium: установлены для автоматизации мобильного тестирования с помощью Robot Framework

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-on-docke
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»