Last active
February 11, 2025 01:56
-
-
Save KozlovAleksei/1b7e91583c5006ad68f07c406c68fe81 to your computer and use it in GitHub Desktop.
Docker1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Используем оболочку Bash для выполнения команд | |
FROM debian:bookworm | |
# Используем bash для выполнения команд | |
SHELL ["/bin/bash", "-c"] | |
ENV DEBIAN_FRONTEND=noninteractive | |
ENV ANDROID_HOME=/opt/android-sdk | |
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 | |
ENV PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${JAVA_HOME}/bin" | |
# Установка необходимых пакетов | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends \ | |
wget \ | |
unzip \ | |
openjdk-17-jdk \ | |
ca-certificates \ | |
python3.10 \ | |
python3-pip \ | |
python3-venv \ | |
build-essential \ | |
git \ | |
pkg-config \ | |
libffi-dev \ | |
libssl-dev \ | |
zlib1g-dev \ | |
libsdl2-dev \ | |
libsdl2-ttf-dev \ | |
libsdl2-image-dev \ | |
libsdl2-mixer-dev \ | |
libgl1-mesa-dev \ | |
libgstreamer1.0-dev \ | |
libmtdev-dev \ | |
libjpeg-dev \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Проверка сетевой доступности | |
RUN echo "Проверка доступности deb.debian.org..." && \ | |
if ! wget -q --spider http://deb.debian.org; then \ | |
echo "Ошибка: Нет доступа к репозиториям Debian"; \ | |
exit 1; \ | |
fi | |
# Установка Android SDK | |
RUN mkdir -p $ANDROID_HOME/cmdline-tools && \ | |
cd $ANDROID_HOME && \ | |
wget -q --show-progress --https-only --timestamping \ | |
"https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip" && \ | |
unzip -d cmdline-tools commandlinetools-linux-7583922_latest.zip && \ | |
rm commandlinetools-linux-7583922_latest.zip && \ | |
mv cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest && \ | |
chmod +x $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager && \ | |
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --licenses | |
# Установка Android компонентов | |
RUN yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME \ | |
"platforms;android-33" \ | |
"build-tools;34.0.0" | |
# Установка Android NDK (исправленная версия 21e) | |
ENV ANDROID_NDK_HOME=/opt/android-sdk/ndk/android-ndk-r21e | |
RUN mkdir -p $ANDROID_NDK_HOME && \ | |
cd $ANDROID_NDK_HOME && \ | |
wget -q --show-progress --https-only --timestamping \ | |
"https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip" && \ | |
unzip android-ndk-r21e-linux-x86_64.zip && \ | |
rm android-ndk-r21e-linux-x86_64.zip | |
# Установка Rust | |
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
ENV PATH="/root/.cargo/bin:${PATH}" | |
# Установка зависимостей для компиляции Python 3.10 | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends \ | |
zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev \ | |
libreadline-dev libsqlite3-dev libbz2-dev \ | |
libgl1-mesa-dev libgles2-mesa-dev \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Скачивание и установка Python 3.10 из исходных кодов | |
RUN wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz && \ | |
tar -xf Python-3.10.12.tgz && \ | |
cd Python-3.10.12 && \ | |
./configure --enable-optimizations --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" && \ | |
make -j$(nproc) && \ | |
make install | |
# Установка дополнительных пакетов Python | |
RUN pip3 install --upgrade pip==23.3.2 setuptools==68.0.0 wheel==0.41.3 setuptools_rust==1.8.1 cryptography==38.0.4 kivy==2.1.0 aiohttp==3.8.6 beautifulsoup4==4.12.3 configparser==5.3.0 chardet==5.2.0 async-timeout==4.0.3 soupsieve==2.5 | |
# Установка git | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends git && \ | |
rm -rf /var/lib/apt/lists/* | |
# Настройка Git | |
RUN git config --global user.name "ter" && \ | |
git config --global user.email "ter@google.com" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment