File size: 2,770 Bytes
6c719d8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# 使用基于 Debian 的 Python 镜像作为基础镜像
FROM python:3.11-slim-bullseye
# 替换为USTC的镜像源
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 安装 Flask
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install flask
# 更新软件包索引并安装必要的软件包及缺失的依赖
RUN apt-get update && apt-get install -y \
vim \
wget \
unzip \
libpulse-dev \
libnss3 \
cpu-checker \
# === 添加的 Android Emulator 和 Qt 相关依赖 ===
libdrm2 \
libxkbfile1 \
libxcb-cursor0 \
libxkbcommon-x11-0 \
libglu1-mesa \
libqt5gui5 \
libqt5core5a \
libqt5widgets5 \
libqt5network5 \
libqt5qml5 \
libqt5quick5 \
libx11-xcb-dev \
libxcb-xinerama0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render0 \
libxcb-shape0 \
libxcb-sync1 \
libxcb-xfixes0 \
libxcb-glx0 \
libsdl2-2.0-0 \
libxext6 \
libpciaccess0
# 创建安装目录并切换到该目录
RUN mkdir -p /root/install-android && cd /root/install-android
# 下载和安装 OpenJDK
COPY openlogic-openjdk-8u412-b08-linux-x64-deb.deb .
RUN apt install -y ./openlogic-openjdk-8u412-b08-linux-x64-deb.deb
# 设置 Android 环境变量
ENV ANDROID_HOME=/root/.android
RUN mkdir -p $ANDROID_HOME
# 下载 Android SDK
COPY sdk-tools-linux-4333796.zip .
RUN unzip ./sdk-tools-linux-4333796.zip -d $ANDROID_HOME
# 更新 .bashrc 文件
RUN echo "export ANDROID_HOME=$ANDROID_HOME" >> /root/.bashrc \
&& echo 'export SDK=$ANDROID_HOME' >> /root/.bashrc \
&& echo 'export ANDROID_SDK_ROOT=$ANDROID_HOME' >> /root/.bashrc \
&& echo 'export PATH=$SDK/emulator:$SDK/tools:$SDK/tools/bin:$SDK/platform-tools:$PATH' >> /root/.bashrc
# 安装 Android SDK 工具
RUN /bin/bash -c "source /root/.bashrc && yes | sdkmanager 'platform-tools' 'emulator'"
RUN /bin/bash -c "source /root/.bashrc && yes | sdkmanager 'build-tools;33.0.0'"
RUN /bin/bash -c "source /root/.bashrc && yes | sdkmanager 'platforms;android-33'"
# 复制文件到容器内的指定位置
COPY skins.zip .
RUN unzip ./skins.zip -d /root/.android/
COPY Pixel_7_Pro_API_33.ini /root/.android/avd/
COPY Pixel_7_Pro_API_33.avd.zip .
RUN unzip ./Pixel_7_Pro_API_33.avd.zip -d /root/.android/avd/
COPY adb_client.py /
COPY x86_64.zip .
RUN mkdir -p /root/.android/system-images/android-33/google_apis/
RUN unzip ./x86_64.zip -d /root/.android/system-images/android-33/google_apis/
# 清理不需要的文件
RUN rm /Pixel_7_Pro_API_33.avd.zip \
&& rm /openlogic-openjdk-8u412-b08-linux-x64-deb.deb \
&& rm /sdk-tools-linux-4333796.zip \
&& rm /skins.zip \
&& rm /x86_64.zip
|