FROM node:20 # Install Java and basic tools RUN apt-get update && apt-get install -y openjdk-17-jdk wget unzip git # Set Java home ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 # Install Android SDK ENV ANDROID_HOME=/opt/android-sdk ENV ANDROID_SDK_ROOT=/opt/android-sdk ENV PATH=${PATH}:/opt/android-sdk/cmdline-tools/cmdline-tools-latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/build-tools/34.0.0 RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && \ cd ${ANDROID_HOME}/cmdline-tools && \ wget -q https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -O cmdline-tools.zip && \ unzip -q cmdline-tools.zip && \ mv cmdline-tools cmdline-tools-latest && \ rm -f cmdline-tools.zip # Create required directories RUN mkdir -p /root/.android && \ touch /root/.android/repositories.cfg # Accept Android SDK licenses and install required packages RUN yes | /opt/android-sdk/cmdline-tools/cmdline-tools-latest/bin/sdkmanager --licenses && \ /opt/android-sdk/cmdline-tools/cmdline-tools-latest/bin/sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" # Install Gradle ENV GRADLE_HOME=/opt/gradle RUN wget -q https://services.gradle.org/distributions/gradle-8.5-bin.zip -O /tmp/gradle.zip && \ unzip -q /tmp/gradle.zip -d /opt && \ mv /opt/gradle-8.5 ${GRADLE_HOME} && \ rm /tmp/gradle.zip ENV PATH=${PATH}:${GRADLE_HOME}/bin # Install Bubblewrap RUN npm install -g @bubblewrap/cli # Copy app COPY . /app WORKDIR /app # Install dependencies RUN npm install # Expose port EXPOSE 7860 # Start the web server CMD ["node", "app.js"]