diff --git a/Dockerfile b/Dockerfile index 7b1e880..1e763c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,78 +1,39 @@ -FROM cimg/android:2022.12.1-node - -RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.6.4111459" && \ - echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "cmake;3.10.2.4988404" - -# Setup LTS release -ENV NDK_LTS_VERSION "21.4.7075529" -ENV ANDROID_NDK_HOME "/home/circleci/android-sdk/ndk/${NDK_LTS_VERSION}" -RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "ndk;${NDK_LTS_VERSION}" - -# Setup build tools -ENV BUILD_TOOLS_VERSION "30.0.3" -RUN echo y | ${CMDLINE_TOOLS_ROOT}/sdkmanager "build-tools;${BUILD_TOOLS_VERSION}" - -ENV ANDROID_NDK_ROOT "${ANDROID_NDK_HOME}" -ENV PATH "${ANDROID_NDK_HOME}:${PATH}" +FROM ubuntu:24.04 USER root -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node \ - && echo 'node ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ - && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep - -USER node -ENV PATH /home/node/.local/bin:/home/node/bin:${PATH} - -CMD ["/bin/sh"] - -# Switching user can confuse Docker's idea of $HOME, so we set it explicitly -ENV HOME /home/node - -RUN sudo npm install --unsafe-perm=true --allow-root -g cordova@12.0.0 @ionic/cli@6.20.3 - -RUN sudo apt-get update -qq && \ - DEBIAN_FRONTEND=noninteractive sudo apt-get install -y -qq --no-install-recommends \ - # for ruby-dev - build-essential\ - git \ - vim \ - # for rbenv - libssl-dev libreadline-dev zlib1g-dev \ - # for postgres - libpq-dev \ - && sudo apt-get clean \ - && sudo rm -rf /var/cache/apt/archives/* \ - && sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ - && sudo truncate -s 0 /var/log/*log - -ENV PATH="/home/node/.rbenv/bin:/home/node/.rbenv/shims:$PATH" +# update image and install required packages +RUN apt update && apt install -y default-jdk -ENV NVM_DIR="$HOME/.nvm" -ENV NODE_VERSION="16.17.0" +ENV JAVA_HOME=/usr/lib/jvm/default-java +ENV JDK_HOME=${JAVA_HOME} +ENV JRE_HOME=${JDK_HOME} -RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \ - && source $NVM_DIR/nvm.sh \ - && nvm install $NODE_VERSION \ - && nvm alias default $NODE_VERSION \ - && nvm use default +# Install wget and unzip +RUN apt-get install -y wget unzip -ENV NODE_PATH="$NVM_DIR/v$NODE_VERSION/lib/node_modules" -ENV PATH="$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH" +# Install Gradle 7.6 +RUN wget https://services.gradle.org/distributions/gradle-7.6-bin.zip -P /tmp && \ + unzip -d /opt/gradle /tmp/gradle-7.6-bin.zip && \ + ln -s /opt/gradle/gradle-7.6/bin/gradle /usr/bin/gradle && \ + rm /tmp/gradle-7.6-bin.zip -RUN sudo apt-get update && \ - sudo apt-get install git curl libssl-dev libreadline-dev bison zlib1g-dev autoconf build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev && \ - bash -c "curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash" && \ - bash -c "rbenv install 3.1.4" && \ - echo 'eval "$(rbenv init -)"' >> /home/node/.bashrc && \ - bash -c "rbenv global 3.1.4" && \ - bash -c "/home/node/.rbenv/shims/gem install bundler" +ENV ANDROID_HOME=/opt/android-sdk -RUN sudo apt-get update && sudo apt-get install python3-pip +# Install Android SDK Tools +RUN wget https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip -P /tmp && \ + mkdir -p ${ANDROID_HOME}/cmdline-tools && \ + unzip -d ${ANDROID_HOME}/cmdline-tools/temp /tmp/commandlinetools-linux-9123335_latest.zip && \ + rm /tmp/commandlinetools-linux-9123335_latest.zip && \ + ls -la ${ANDROID_HOME}/cmdline-tools/temp/ && \ + mv ${ANDROID_HOME}/cmdline-tools/temp/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest && \ + ls -la ${ANDROID_HOME}/cmdline-tools/latest/bin/ && \ + rm -rf ${ANDROID_HOME}/cmdline-tools/temp -ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" +# Set PATH to include the bin directory of the cmdline-tools +ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin -RUN java -version && gradle -v && ruby -v && node -v && pip -V +# Accept licenses and install SDK components +RUN yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses && \ + ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3" "extras;google;m2repository" "extras;android;m2repository" -WORKDIR /home/node