Compare commits

..

9 commits

2 changed files with 102 additions and 15 deletions

View file

@ -1,50 +1,137 @@
FROM debian:12-slim FROM debian:13-slim
# Éviter les invites interactives pendant l'installation # Éviter les invites interactives pendant l'installation
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME=/opt/android-sdk ENV ANDROID_HOME=/opt/android-sdk
# CORRECTION : Le PATH ne contient que des dossiers (pas le fichier de destination final) ENV ANDROID_AVD_HOME=${ANDROID_HOME}/.android/avd
ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools 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
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \ bc \
wget \
curl \
gnupg \
unzip \
jq \ 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 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Installation de SDK Android # 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 \ RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \
&& wget -O /tmp/sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \ && 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 \ && unzip /tmp/sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools \
&& mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \
&& rm /tmp/sdk-tools.zip && rm /tmp/sdk-tools.zip
# Installation des autres dépendances # Installation des autres dépendances + DÉPENDANCES DE L'ÉMULATEUR
RUN curl -fSsL -A "Mozilla/5.0" https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ 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 \ && 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 && apt-get install -y --no-install-recommends \ && apt-get update
RUN apt-get install -y --no-install-recommends \
git \ git \
openjdk-17-jdk-headless \ openjdk-21-jdk-headless \
libstdc++6 \ libstdc++6 \
make \ make \
po-debconf \ po-debconf \
zlib1g \ zlib1g \
libglx-mesa0 \
dotnet-sdk-10.0 \ 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/* && rm -rf /var/lib/apt/lists/*
# 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 <<EOF
# Install QEMU 11 and AArch64 UEFI firmware from Debian Sid
echo "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT}/ sid main" \
> /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
RUN yes | sdkmanager --licenses \ RUN yes | sdkmanager --licenses \
&& sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" && 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}
# 5. Installation du workload .NET Android # 5. Installation du workload .NET Android
RUN dotnet workload install android --skip-manifest-update RUN dotnet workload install android --skip-manifest-update
# Définition du répertoire de travail par défaut
WORKDIR /src WORKDIR /src
CMD ["bash"] CMD ["bash"]

View file

@ -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 : les jobs `runs-on: docker` le pull. Format :
```yaml ```yaml
docker:docker://pazof/yavsc-build-env:debian12-dotnet10-android36-v<N> docker:docker://pazof/yavsc-build-env:debian13-dotnet10-android36-v<N>
``` ```