94 lines
3.2 KiB
Docker
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"]
|
|
|
|
###############################################################################
|