diff --git a/Dockerfile b/Dockerfile index 5013ffd..ce9eff8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,137 +1,50 @@ -FROM debian:13-slim +FROM debian:12-slim # Éviter les invites interactives pendant l'installation ENV DEBIAN_FRONTEND=noninteractive ENV ANDROID_HOME=/opt/android-sdk -ENV ANDROID_AVD_HOME=${ANDROID_HOME}/.android/avd -ENV ANDROID_USER_HOME=${ANDROID_HOME}/.android -ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator - - -ARG VERSION_SEABIOS="1.17.0-1" -ARG VERSION_QEMU="1:11.1.0+ds-2" -ARG DEBIAN_SNAPSHOT="20260819T142328Z" -ARG VERSION_EFI="2026.05-2" - -RUN echo "deb https://deb.debian.org/debian trixie non-free" > /etc/apt/sources.list.d/non-free.list +# CORRECTION : Le PATH ne contient que des dossiers (pas le fichier de destination final) +ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools RUN apt-get update && apt-get install -y --no-install-recommends \ - bc \ - jq \ - xxd \ - tini \ - wget \ - 7zip \ - 7zip-rar \ - curl \ - aria2 \ - fdisk \ - gnupg \ - nginx \ - unzip \ - procps \ - ipcalc \ - ethtool \ - python3 \ - python3-pip \ - iptables \ - iproute2 \ - dnsmasq \ - xorriso \ - pciutils \ - xz-utils \ - apt-utils \ - net-tools \ - e2fsprogs \ - diffutils \ - util-linux \ - cpu-checker \ - iputils-ping \ - genisoimage \ - inotify-tools \ - netcat-openbsd \ ca-certificates \ + wget \ + curl \ + gnupg \ + unzip \ + jq \ && rm -rf /var/lib/apt/lists/* # Installation de SDK Android +# CORRECTION : Création de la structure correcte exigée par Google (cmdline-tools/latest) RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \ && wget -O /tmp/sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \ && unzip /tmp/sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools \ && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ && rm /tmp/sdk-tools.zip -# Installation des autres dépendances + DÉPENDANCES DE L'ÉMULATEUR +# Installation des autres dépendances RUN curl -fSsL -A "Mozilla/5.0" https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" > /etc/apt/sources.list.d/microsoft-prod.list \ - && apt-get update -RUN apt-get install -y --no-install-recommends \ + && apt-get update && apt-get install -y --no-install-recommends \ git \ - openjdk-21-jdk-headless \ + openjdk-17-jdk-headless \ libstdc++6 \ make \ po-debconf \ zlib1g \ - libglx-mesa0 \ dotnet-sdk-10.0 \ - qemu-kvm \ - libglu1-mesa \ - libgl1 \ - libglx0 \ - libpulse0 \ - libtinfo6 \ - libx11-6 \ - libxext6 \ - libxi6 \ - libxkbfile1 \ - libxkbcommon0 \ - libxkbcommon-x11-0 \ - libxrender1 \ - libxtst6 \ && rm -rf /var/lib/apt/lists/* - -RUN < /etc/apt/sources.list.d/qemu-snapshot.list - - apt-get update - apt-get --no-install-recommends -y -t sid install \ - "seabios=${VERSION_SEABIOS}" \ - "qemu-utils=${VERSION_QEMU}" \ - "qemu-efi-aarch64=${VERSION_EFI}" \ - "qemu-system-arm=${VERSION_QEMU}" -EOF - -ENV QT_QPA_PLATFORM=offscreen -ENV ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 -ENV ANDROID_SDK_ROOT=${ANDROID_HOME} - -# Installation du workload .NET Android -RUN dotnet workload install android --skip-manifest-update - - -# 4. Acceptation des licences et installation des composants +# 4. Acceptation des licences Android et installation des composants de base +# Prise en compte de votre demande pour Android 36 et build-tools 36.0.0 RUN yes | sdkmanager --licenses \ - && sdkmanager "platform-tools" \ - "platforms;android-36" \ - "build-tools;36.0.0" \ - "emulator" \ - "system-images;android-36;google_apis;x86_64" - -# 4b. AJOUT : Création pré-embarquée de l'AVD - -RUN mkdir -p ${ANDROID_USER_HOME} \ - && echo "no" | avdmanager create avd \ - -n postit_test_avd \ - -k "system-images;android-36;google_apis;x86_64" \ - -d "pixel" \ - --force \ - && chmod -R 777 ${ANDROID_USER_HOME} + && sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" # 5. Installation du workload .NET Android RUN dotnet workload install android --skip-manifest-update +# Définition du répertoire de travail par défaut WORKDIR /src -CMD ["bash"] \ No newline at end of file +CMD ["bash"] diff --git a/README.md b/README.md index 5c6ed93..2dff478 100644 --- a/README.md +++ b/README.md @@ -35,5 +35,5 @@ Le `runner.labels` du runner doit pointer sur le bon tag pour que les jobs `runs-on: docker` le pull. Format : ```yaml -docker:docker://pazof/yavsc-build-env:debian13-dotnet10-android36-v +docker:docker://pazof/yavsc-build-env:debian12-dotnet10-android36-v ```