Files
2026-03-30 10:05:53 +00:00

94 lines
3.2 KiB
Docker

FROM ubuntu:24.04
###############################################################################
### Tools Configuration ###
# Java JDK Setup
ARG JDK_VERSION="17"
# Gradle Setup
ARG GRADLE_VERSION="8.4"
ARG GRADLE_INSTALL_PATH="/opt/gradle"
# CMake Setup (https://github.com/Kitware/CMake)
ARG CMAKE_VERSION="3.31.5"
ARG CMAKE_PKG="cmake-${CMAKE_VERSION}-linux-x86_64.sh"
ARG CMAKE_REPO_URL="https://github.com/Kitware/CMake/releases/download"
ARG CMAKE_PKG_URL="${CMAKE_REPO_URL}/v${CMAKE_VERSION}/${CMAKE_PKG}"
# Android Setup
ARG ANDROID_SDK_VERSION="31"
ARG ANDROID_NDK_VERSION="26.0.10792818"
ARG ANDROID_BUILD_TOOLS_VERSION="30.0.2"
ARG ANDROID_INSTALL_PATH="/opt/android-studio"
###############################################################################
# Set Environment Variable for no user interaction with APT
ARG DEBIAN_FRONTEND=noninteractive
###############################################################################
# Install system packages
RUN apt-get update && \
apt-get install --yes --no-install-recommends apt-utils && \
apt-get install --yes --no-install-recommends \
openjdk-${JDK_VERSION}-jdk \
wget \
unzip \
curl \
git \
zip \
ninja-build \
build-essential \
ca-certificates && \
apt-get clean --yes && \
rm -rf /var/lib/apt/lists/*
# CMake Installation
RUN wget ${CMAKE_PKG_URL} -O /tmp/cmake.sh && \
chmod +x /tmp/cmake.sh && \
/tmp/cmake.sh --skip-license --prefix=/usr/local && \
rm -f /tmp/cmake.sh
# Gradle Installation
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -O /tmp/gradle.zip && \
unzip /tmp/gradle.zip -d /opt && \
ln -s /opt/gradle-${GRADLE_VERSION} ${GRADLE_INSTALL_PATH} && \
ln -s ${GRADLE_INSTALL_PATH}/bin/gradle /usr/bin/gradle && \
rm /tmp/gradle.zip
ENV PATH="${GRADLE_INSTALL_PATH}/bin:${PATH}"
# Install Android SDK Command Line Tools
RUN mkdir -p ${ANDROID_INSTALL_PATH}/cmdline-tools && \
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O /tmp/tools.zip && \
unzip /tmp/tools.zip -d ${ANDROID_INSTALL_PATH}/cmdline-tools && \
mv ${ANDROID_INSTALL_PATH}/cmdline-tools/cmdline-tools ${ANDROID_INSTALL_PATH}/cmdline-tools/latest && \
rm /tmp/tools.zip
ENV ANDROID_SDK_ROOT=${ANDROID_INSTALL_PATH}
ENV PATH="${ANDROID_INSTALL_PATH}/cmdline-tools/latest/bin:${PATH}"
# Accept Android SDK-Manager License
RUN yes | sdkmanager --licenses
# Install Android Tools, SDK and NDK
RUN sdkmanager --update && \
sdkmanager \
"platform-tools" \
"platforms;android-${ANDROID_SDK_VERSION}" \
"build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"ndk;${ANDROID_NDK_VERSION}"
ENV ANDROID_NDK_HOME=${ANDROID_INSTALL_PATH}/ndk/${ANDROID_NDK_VERSION}
ENV PATH=${ANDROID_INSTALL_PATH}/cmdline-tools/latest/bin:${ANDROID_INSTALL_PATH}/platform-tools:${ANDROID_INSTALL_PATH}/build-tools/${ANDROID_BUILD_TOOLS_VERSION}:$PATH
# Container working directory
WORKDIR /workspace
# Add and Setup Container Entry Point Script
COPY ./scripts/entrypoint.sh /opt/entrypoint.sh
RUN chmod +x /opt/entrypoint.sh
ENTRYPOINT ["/opt/entrypoint.sh"]
###############################################################################