39 lines
1.5 KiB
Docker
39 lines
1.5 KiB
Docker
FROM node:22-bookworm
|
|
|
|
ARG CMDLINE_TOOLS_VERSION=15859902
|
|
ARG ANDROID_PLATFORM=android-36
|
|
ARG ANDROID_BUILD_TOOLS=36.0.0
|
|
ARG ANDROID_NDK=27.1.12297006
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
openjdk-17-jdk-headless unzip curl ca-certificates git \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& ln -s "$(dirname "$(dirname "$(readlink -f "$(which javac)")")")" /opt/java17
|
|
|
|
ENV JAVA_HOME=/opt/java17 \
|
|
ANDROID_HOME=/opt/android-sdk \
|
|
GRADLE_USER_HOME=/home/node/.gradle \
|
|
CI=1
|
|
ENV ANDROID_SDK_ROOT=$ANDROID_HOME
|
|
ENV PATH=$JAVA_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH
|
|
|
|
RUN mkdir -p "$ANDROID_HOME/cmdline-tools" \
|
|
&& curl -fsSL -o /tmp/cmdline-tools.zip \
|
|
"https://dl.google.com/android/repository/commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip" \
|
|
&& unzip -q /tmp/cmdline-tools.zip -d "$ANDROID_HOME/cmdline-tools" \
|
|
&& mv "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest" \
|
|
&& rm /tmp/cmdline-tools.zip \
|
|
&& yes | sdkmanager --licenses > /dev/null \
|
|
&& sdkmanager "platform-tools" "platforms;${ANDROID_PLATFORM}" \
|
|
"build-tools;${ANDROID_BUILD_TOOLS}" "ndk;${ANDROID_NDK}" \
|
|
&& chown -R node:node "$ANDROID_HOME"
|
|
|
|
RUN npm install -g eas-cli \
|
|
&& mkdir -p "$GRADLE_USER_HOME" && chown -R node:node /home/node \
|
|
# mounted repos are owned by a different uid; stop git complaining
|
|
&& git config --system --add safe.directory '*'
|
|
|
|
USER node
|
|
WORKDIR /workspace
|
|
CMD ["bash"]
|