diff --git a/Dockerfile b/Dockerfile index c747b01..3c211ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,13 @@ -FROM --platform=linux/amd64 ubuntu:22.04 +FROM --platform=linux/amd64 ubuntu:23.10 LABEL maintainer="messeb" - -ENV ANDROID_SDK_TOOLS_VERSION 9477386 -ENV ANDROID_SDK_TOOLS_CHECKSUM bd1aa17c7ef10066949c88dc6c9c8d536be27f992a1f3b5a584f9bd2ba5646a0 + +# Command line tools only +# https://developer.android.com/studio/index.html +ENV ANDROID_SDK_TOOLS_VERSION 10406996 +ENV ANDROID_SDK_TOOLS_CHECKSUM 8919e8752979db73d8321e9babe2caedcc393750817c1a5f56c128ec442fb540 + +ENV GRADLE_VERSION 8.2 ENV ANDROID_HOME "/opt/android-sdk-linux" ENV ANDROID_SDK_ROOT $ANDROID_HOME @@ -16,14 +20,20 @@ ENV LANG en_US.UTF-8 RUN apt-get -qq update \ && apt-get -qqy --no-install-recommends install \ apt-utils \ - openjdk-18-jdk \ - openjdk-18-jre-headless \ - software-properties-common \ build-essential \ + openjdk-22-jdk \ + openjdk-22-jre-headless \ + software-properties-common \ + libssl-dev \ + libffi-dev \ + python3-dev \ + cargo \ + pkg-config\ libstdc++6 \ libpulse0 \ libglu1-mesa \ openssh-server \ + zip \ unzip \ curl \ lldb \ @@ -57,9 +67,19 @@ ENV HOME /home/mobiledevops USER mobiledevops WORKDIR $HOME/app +# Install SDKMAN +RUN curl -s "https://get.sdkman.io" | bash +SHELL ["/bin/bash", "-c"] + # Install Android packages ADD packages.txt $HOME -RUN $ANDROID_HOME/cmdline-tools/bin/sdkmanager --update --sdk_root=${ANDROID_SDK_ROOT} \ + +# Update sdkmanager +RUN $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --update \ && while read -r pkg; do PKGS="${PKGS}${pkg} "; done < $HOME/packages.txt \ - && $ANDROID_HOME/cmdline-tools/bin/sdkmanager $PKGS > /dev/null --sdk_root=${ANDROID_SDK_ROOT} \ + && $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} $PKGS \ && rm $HOME/packages.txt + +# Install Gradle +RUN source "${HOME}/.sdkman/bin/sdkman-init.sh" \ + && sdk install gradle ${GRADLE_VERSION} diff --git a/LICENSE b/LICENSE index f457bfb..8c1c333 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 messeb +Copyright (c) 2023 messeb Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index e13a4b1..dce507b 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,9 @@ tag_image: build build: docker build -t $(IMAGE) . +run: + docker run -it --rm $(IMAGE) /bin/bash + dockerhub_push: docker push $(IMAGE):latest \ && docker push "$(IMAGE):$(IMAGE_TAG)" diff --git a/README.md b/README.md index 294cc85..1dbbee3 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,18 @@ # Docker image for Android SDK Docker image to build an Android app `*.apk`. -The image contains the latest [Android SDK tools](https://developer.android.com/studio#cmdline-tools) and the Android SDK platform packages from [packages.txt](packages.txt): +The image contains the latest [Android SDK tools](https://developer.android.com/studio#cmdline-tools), [Gradle 8.2](https://developer.android.com/build/releases/gradle-plugin) and the Android SDK platform packages from [packages.txt](packages.txt): + +* build-tools;34.0.0 * build-tools;33.0.2 -* build-tools;30.0.3 +* platforms;android-34 +* platforms;android-34-ext8 * platforms;android-33 -* platforms;android-32 -* platforms;android-31 -* platforms;android-30 +* platform-tools * extras;android;m2repository * extras;google;google_play_services * extras;google;m2repository +* add-ons;addon-google_apis-google-24 The [releases tags](https://github.com/mobiledevops/android-sdk-image/releases) are oriented on the base of the *Build Tools* version from [packages.txt](packages.txt). @@ -32,7 +34,7 @@ version: 2.1 jobs: build: docker: - - image: mobiledevops/android-sdk-image:33.0.2 + - image: mobiledevops/android-sdk-image:34.0.0 steps: - checkout - run: @@ -59,7 +61,7 @@ services: - docker env: - - DOCKER_IMAGE=mobiledevops/android-sdk-image:33.0.2 + - DOCKER_IMAGE=mobiledevops/android-sdk-image:34.0.0 before_install: - docker pull $DOCKER_IMAGE @@ -81,7 +83,7 @@ Example: ``` # .gitlab-ci.yml -image: mobiledevops/android-sdk-image:33.0.2 +image: mobiledevops/android-sdk-image:34.0.0 stages: - build diff --git a/packages.txt b/packages.txt index 2eeef5c..a103ba9 100644 --- a/packages.txt +++ b/packages.txt @@ -1,9 +1,10 @@ +build-tools;34.0.0 build-tools;33.0.2 -build-tools;30.0.3 +platforms;android-34 +platforms;android-34-ext8 platforms;android-33 -platforms;android-32 -platforms;android-31 -platforms;android-30 +platform-tools extras;android;m2repository extras;google;google_play_services -extras;google;m2repository \ No newline at end of file +extras;google;m2repository +add-ons;addon-google_apis-google-24 \ No newline at end of file