2026-06-07 04:42:13 +01:00
|
|
|
FROM debian:12-slim
|
|
|
|
|
|
|
|
|
|
# Éviter les invites interactives pendant l'installation
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
ENV ANDROID_HOME=/opt/android-sdk
|
2026-08-26 00:38:22 +01:00
|
|
|
|
|
|
|
|
ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator
|
2026-06-07 04:42:13 +01:00
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
|
|
ca-certificates \
|
|
|
|
|
wget \
|
|
|
|
|
curl \
|
|
|
|
|
gnupg \
|
2026-06-07 04:50:35 +01:00
|
|
|
unzip \
|
2026-08-17 04:14:43 +01:00
|
|
|
jq \
|
2026-06-07 04:50:35 +01:00
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
2026-06-07 04:42:13 +01:00
|
|
|
|
|
|
|
|
# Installation de SDK Android
|
2026-06-07 04:50:35 +01:00
|
|
|
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
|
2026-06-07 04:42:13 +01:00
|
|
|
|
2026-08-26 00:38:22 +01:00
|
|
|
# Installation des autres dépendances + DÉPENDANCES DE L'ÉMULATEUR
|
2026-06-07 04:42:13 +01:00
|
|
|
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 && apt-get install -y --no-install-recommends \
|
|
|
|
|
git \
|
|
|
|
|
openjdk-17-jdk-headless \
|
|
|
|
|
libstdc++6 \
|
|
|
|
|
make \
|
|
|
|
|
po-debconf \
|
|
|
|
|
zlib1g \
|
2026-06-07 04:50:35 +01:00
|
|
|
dotnet-sdk-10.0 \
|
2026-08-26 00:38:22 +01:00
|
|
|
qemu-kvm \
|
|
|
|
|
libpulse0 \
|
|
|
|
|
libglu1-mesa \
|
|
|
|
|
libgl1-mesa-glx \
|
2026-06-07 04:50:35 +01:00
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
2026-06-07 04:42:13 +01:00
|
|
|
|
2026-08-26 01:10:02 +01:00
|
|
|
# Installation du workload .NET Android
|
|
|
|
|
RUN dotnet workload install android --skip-manifest-update
|
|
|
|
|
|
|
|
|
|
# AJOUT CRITIQUE : Fixer l'emplacement des AVD dans le SDK pour qu'il soit partagé et accessible peu importe l'utilisateur de la CI
|
|
|
|
|
ENV ANDROID_USER_HOME=${ANDROID_HOME}/.android
|
|
|
|
|
|
|
|
|
|
# 4. Acceptation des licences et installation des composants
|
2026-06-07 04:42:13 +01:00
|
|
|
RUN yes | sdkmanager --licenses \
|
2026-08-26 00:38:22 +01:00
|
|
|
&& sdkmanager "platform-tools" \
|
|
|
|
|
"platforms;android-36" \
|
|
|
|
|
"build-tools;36.0.0" \
|
|
|
|
|
"emulator" \
|
|
|
|
|
"system-images;android-36;google_apis;x86_64"
|
2026-06-07 04:42:13 +01:00
|
|
|
|
2026-08-26 01:10:02 +01:00
|
|
|
# 4b. AJOUT : Création pré-embarquée de l'AVD
|
|
|
|
|
# Nous créons le dossier parent et appliquons des permissions larges (777) pour éviter les blocages de droits dans Forgejo
|
|
|
|
|
RUN mkdir -p ${ANDROID_USER_HOME} \
|
|
|
|
|
&& echo "no" | avdmanager create avd -n pixel_test -k "system-images;android-36;google_apis;x86_64" --force \
|
|
|
|
|
&& chmod -R 777 ${ANDROID_USER_HOME}
|
|
|
|
|
|
|
|
|
|
# 5. Installation du workload .NET Android
|
2026-06-07 04:42:13 +01:00
|
|
|
RUN dotnet workload install android --skip-manifest-update
|
|
|
|
|
|
2026-08-26 01:10:02 +01:00
|
|
|
|
2026-06-07 04:42:13 +01:00
|
|
|
WORKDIR /src
|
|
|
|
|
|
2026-08-26 00:38:22 +01:00
|
|
|
CMD ["bash"]
|