mirror of
https://git.eden-emu.dev/eden-emu/docker
synced 2026-02-04 02:41:22 +01:00
Initial commit
This commit is contained in:
66
Dockerfile.android
Normal file
66
Dockerfile.android
Normal file
@@ -0,0 +1,66 @@
|
||||
FROM ubuntu
|
||||
|
||||
RUN apt update && apt full-upgrade -y && apt install -y \
|
||||
wget unzip git build-essential cmake ninja-build python3 python3-pip curl \
|
||||
libasound2-dev libpulse-dev libjack-jackd2-dev \
|
||||
pkg-config libssl-dev zlib1g-dev \
|
||||
glslang-tools libvulkan-dev default-jdk \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
ENV PATH=${PATH}:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools
|
||||
|
||||
RUN mkdir -p ${ANDROID_SDK_ROOT} && \
|
||||
cd ${ANDROID_SDK_ROOT} && \
|
||||
SDK_ZIP=$(curl -sL https://developer.android.com/studio | \
|
||||
sed -n 's|.*href="https://dl.google.com/android/repository/\(commandlinetools-linux-[0-9]*_latest.zip\).*|\1|p') && \
|
||||
wget -q https://dl.google.com/android/repository/${SDK_ZIP} && \
|
||||
unzip ${SDK_ZIP} && \
|
||||
rm ${SDK_ZIP} && \
|
||||
mkdir -p cmdline-tools/latest && \
|
||||
mv cmdline-tools/* cmdline-tools/latest/ || true && \
|
||||
rmdir cmdline-tools/bin cmdline-tools/lib 2>/dev/null || true
|
||||
|
||||
RUN yes | sdkmanager --licenses && \
|
||||
LATEST_PLATFORM=$(sdkmanager --list | grep "platforms;android-" | tail -1 | awk '{print $1}') && \
|
||||
LATEST_BUILD_TOOLS=$(sdkmanager --list | grep "build-tools;" | tail -1 | awk '{print $1}') && \
|
||||
LATEST_CMAKE=$(sdkmanager --list | grep "cmake;" | tail -1 | awk '{print $1}') && \
|
||||
LATEST_NDK=$(sdkmanager --list | grep "ndk;" | tail -1 | awk '{print $1}') && \
|
||||
sdkmanager --no_https "platform-tools" "${LATEST_PLATFORM}" "${LATEST_BUILD_TOOLS}" "${LATEST_CMAKE}" "${LATEST_NDK}" && \
|
||||
rm -rf ${ANDROID_SDK_ROOT}/system-images/* ${ANDROID_SDK_ROOT}/emulator/* ${ANDROID_SDK_ROOT}/extras/* 2>/dev/null || true
|
||||
|
||||
RUN GRADLE_VERSION=$(curl -sL https://gradle.org/releases/ | \
|
||||
sed -n 's|.*https://services.gradle.org/distributions/gradle-\(8[0-9.]*\)-bin.zip.*|\1|p' | sort -V | tail -n 1) && \
|
||||
wget -q https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
|
||||
unzip -q gradle-${GRADLE_VERSION}-bin.zip && \
|
||||
mv gradle-${GRADLE_VERSION} /opt/gradle && \
|
||||
rm gradle-${GRADLE_VERSION}-bin.zip
|
||||
|
||||
ENV PATH=${PATH}:/opt/gradle/bin
|
||||
|
||||
WORKDIR /workspace
|
||||
RUN mkdir -p /output
|
||||
|
||||
COPY <<EOF /build.sh
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
cp -r /source/. /workspace
|
||||
cd /workspace/src/android
|
||||
E_UID=\$(stat -c '%u' /source)
|
||||
E_GID=\$(stat -c '%g' /source)
|
||||
BRANCH=\$(git rev-parse --abbrev-ref HEAD)
|
||||
DATE=\$(date +%Y%m%d%H%M%S)
|
||||
SHORT_SHA=\$(git rev-parse --short HEAD)
|
||||
ID=\${DATE}-\${BRANCH}-\${SHORT_SHA}
|
||||
T=\${1}
|
||||
if [[ "\${1}" == "optimized" ]]; then
|
||||
T="genshinSpoof"
|
||||
fi
|
||||
./gradlew assemble\${T^}Release 2>&1 | tee /output/eden-\${1}-\${ID}.log
|
||||
cp app/build/outputs/apk/\${T}/release/app-\${T}-release.apk /output/eden-\${1}-\${ID}.apk
|
||||
chown \${E_UID}:\${E_GID} /output/*\${ID}*
|
||||
EOF
|
||||
RUN chmod +x /build.sh
|
||||
|
||||
ENTRYPOINT ["/build.sh"]
|
||||
CMD ["mainline"]
|
||||
Reference in New Issue
Block a user