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 <&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"]