FROM debian:bullseye

# Se instalan las herramientas necesarias para configurar el source list
RUN apt-get update && \
	apt-get install -y --no-install-recommends lsb-release apt-transport-https \
	ca-certificates wget vim curl git unzip gnupg2 make cmake gcc build-essential && \
	apt-get clean

# Se instala Java 17 y python.
RUN apt-get update && \
	apt-get install -y openjdk-17-jre openjdk-17-jdk && \
	apt-get install -y python && \
	apt-get clean

# Para nvm
SHELL ["/bin/bash", "--login", "-c"]
RUN curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

# RUN nvm install 14.21.3 && npm i -g @ionic/cli@6 && npm i -g cordova@12
RUN nvm install 20.14.0 && npm i -g @ionic/cli@7.2.0 && npm i -g cordova-res


RUN ln -s "$(which node)" /usr/bin/node
RUN ln -s "$(which npm)" /usr/bin/npm
RUN ln -s "$(which ionic)" /usr/bin/ionic
# RUN ln -s "$(which cordova)" /usr/bin/cordova

VOLUME /opt/app/front_end

ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64
RUN export JAVA_HOME

# Para Android SDK.
RUN mkdir -p /var/dev/android/cmdline-tools/latest
RUN wget -O commandlinetools-linux.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
RUN unzip commandlinetools-linux.zip -d /tmp
RUN cp -r -t /var/dev/android/cmdline-tools/latest /tmp/cmdline-tools/*
RUN rm -r commandlinetools-linux.zip /tmp/cmdline-tools

ENV ANDROID_HOME /var/dev/android/sdk
RUN export ANDROID_HOME

RUN yes | /var/dev/android/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME "cmdline-tools;latest"
RUN yes | /var/dev/android/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME "platforms;android-34"
RUN yes | /var/dev/android/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME "build-tools;34.0.0"
RUN yes | /var/dev/android/cmdline-tools/latest/bin/sdkmanager --licenses

# Para Gradle.
RUN wget -O gradle-8.7-bin.zip https://services.gradle.org/distributions/gradle-8.7-bin.zip?_gl=1*u0a6sk*_ga*MTcxNjY1NDQ0MC4xNzE1ODkxNDUy*_ga_7W7NC6YNPT*MTcxNjU2MTMxOC4yLjEuMTcxNjU2MTQ3Mi41My4wLjA.
RUN mkdir /opt/gradle
RUN unzip -d /opt/gradle gradle-8.7-bin.zip
RUN rm gradle-8.7-bin.zip

ENV GRADLE_HOME /opt/gradle/gradle-8.7
RUN export GRADLE_HOME

ENV PATH="${PATH}:${GRADLE_HOME}/bin"

ENV NODE_OPTIONS --max_old_space_size=8096
RUN export NODE_OPTIONS

COPY ./sh/run_android.sh /opt/app/sh/run.sh
COPY ./etc/environment /etc/environment

EXPOSE 8000 8300 35729 53703

ENTRYPOINT [ "sh", "/opt/app/sh/run.sh" ]