Most Python files were using `# === [...]` instead of `#=== [...]` so I went with what was the most common in the codebase.
60 lines
2.0 KiB
Docker
60 lines
2.0 KiB
Docker
# ===----------------------------------------------------------------------===##
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
# ===----------------------------------------------------------------------===##
|
|
|
|
FROM ubuntu:jammy
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
netcat-openbsd \
|
|
openjdk-11-jdk \
|
|
sudo \
|
|
unzip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV ANDROID_HOME=/opt/android/sdk
|
|
|
|
RUN curl -sL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o cmdline-tools.zip && \
|
|
mkdir -p ${ANDROID_HOME} && \
|
|
unzip cmdline-tools.zip -d ${ANDROID_HOME}/cmdline-tools && \
|
|
mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest && \
|
|
rm cmdline-tools.zip
|
|
ENV PATH="${ANDROID_HOME}/cmdline-tools/latest/bin:${PATH}"
|
|
|
|
RUN yes | sdkmanager --licenses
|
|
RUN sdkmanager --install emulator
|
|
ENV PATH="${ANDROID_HOME}/emulator:${PATH}"
|
|
|
|
ARG API # e.g. 21
|
|
RUN sdkmanager --install "platforms;android-${API}"
|
|
|
|
ARG TYPE # one of: default, google_apis, or google_apis_playstore
|
|
ARG ABI # e.g. armeabi-v7a, x86
|
|
ENV EMU_PACKAGE_NAME="system-images;android-${API};${TYPE};${ABI}"
|
|
RUN sdkmanager --install "${EMU_PACKAGE_NAME}"
|
|
|
|
COPY ./emulator-entrypoint.sh /opt/emulator/bin/emulator-entrypoint.sh
|
|
COPY ./emulator-wait-for-ready.sh /opt/emulator/bin/emulator-wait-for-ready.sh
|
|
ENV PATH="/opt/emulator/bin:${PATH}"
|
|
ENV PATH="${ANDROID_HOME}/platform-tools:${PATH}"
|
|
|
|
# Setup password-less sudo so that /dev/kvm permissions can be changed. Run the
|
|
# emulator in an unprivileged user for reliability (and it might require it?)
|
|
RUN echo "ALL ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
RUN useradd --create-home emulator
|
|
USER emulator
|
|
WORKDIR /home/emulator
|
|
|
|
# Size of emulator /data partition in megabytes.
|
|
ENV EMU_PARTITION_SIZE=8192
|
|
|
|
EXPOSE 5037
|
|
|
|
HEALTHCHECK CMD emulator-wait-for-ready.sh 5
|
|
|
|
ENTRYPOINT ["emulator-entrypoint.sh"]
|