Skip to content

Commit 27d1b5e

Browse files
ci: updating dockerfile for android-agent (#4506)
Co-authored-by: Yamil Medina <yamilmedina@users.noreply.github.com>
1 parent 38ce6f5 commit 27d1b5e

File tree

2 files changed

+52
-51
lines changed

2 files changed

+52
-51
lines changed

docker-agent/AndroidAgent

Lines changed: 51 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,74 @@
1-
FROM eclipse-temurin:17-jdk
1+
# Android Agent Docker Image
2+
#
3+
# Base: Ubuntu 24.04 (noble) with glibc 2.39
4+
# Required for core-crypto native binaries which need glibc 2.38+
5+
#
6+
# Build:
7+
# docker build -t android-agent:latest .
8+
#
9+
# Test:
10+
# docker run --rm android-agent:latest ldd --version | head -1
11+
# # Should show: GLIBC 2.39
12+
13+
FROM eclipse-temurin:17-jdk-noble
214

315
RUN apt-get clean && \
416
rm -rf /var/lib/apt/lists/* && \
517
apt-get update && \
6-
apt-get install -yq unzip libc6 libstdc++6 zlib1g libncurses5 build-essential libssl-dev ruby ruby-dev --no-install-recommends docker.io vim git && \
18+
apt-get install -yq \
19+
unzip \
20+
libc6 \
21+
libstdc++6 \
22+
zlib1g \
23+
libncurses6 \
24+
build-essential \
25+
libssl-dev \
26+
ruby \
27+
ruby-dev \
28+
docker.io \
29+
vim \
30+
git \
31+
wget \
32+
--no-install-recommends && \
733
apt-get clean
834

935
RUN gem install bundler
1036

11-
# Cleaning
12-
RUN apt-get clean
13-
1437
ARG USER=android-agent
1538
ARG USER_ID=1000
1639
ARG GROUP_ID=1000
17-
RUN useradd -m ${USER} --uid=${USER_ID}
40+
RUN useradd -m ${USER} --uid=${USER_ID} --non-unique || true
1841
USER ${USER_ID}:${GROUP_ID}
1942
WORKDIR /home/${USER}
20-
ENV HOME /home/${USER}
43+
ENV HOME=/home/${USER}
2144

22-
# Download and untar Android SDK tools
23-
RUN mkdir -p /home/${USER}/android-sdk-linux && \
24-
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -O tools.zip && \
25-
unzip tools.zip -d /home/${USER}/android-sdk && \
26-
rm tools.zip
45+
# Download Android cmdline-tools
46+
RUN mkdir -p /home/${USER}/android-sdk/cmdline-tools && \
47+
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip && \
48+
unzip -q cmdline-tools.zip && \
49+
mv cmdline-tools /home/${USER}/android-sdk/cmdline-tools/latest && \
50+
rm cmdline-tools.zip
2751

28-
# Download and untar Android NDK tools
29-
ENV ANDROID_NDK_HOME /home/${USER}/android-ndk
30-
ENV ANDROID_NDK_VERSION r22b
52+
# Download Android NDK
53+
ENV ANDROID_NDK_HOME=/home/${USER}/android-ndk
54+
ENV ANDROID_NDK_VERSION=r27b
3155
RUN mkdir /home/${USER}/android-ndk-tmp && \
3256
cd /home/${USER}/android-ndk-tmp && \
33-
wget -q https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
34-
# uncompress
35-
unzip -q android-ndk-${ANDROID_NDK_VERSION}-linux-x86_64.zip && \
36-
# move to its final location
57+
wget -q https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
58+
unzip -q android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
3759
mv ./android-ndk-${ANDROID_NDK_VERSION} ${ANDROID_NDK_HOME} && \
38-
# remove temp dir
39-
cd ${ANDROID_NDK_HOME} && \
4060
rm -rf /home/${USER}/android-ndk-tmp
4161

42-
# Download latest cmdline-tools to fix the sdkmanager jdk11 incompatibilities
43-
RUN mkdir /home/${USER}/cmdline-tools-tmp && \
44-
cd /home/${USER}/cmdline-tools-tmp && \
45-
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip && \
46-
# uncompress
47-
unzip commandlinetools-linux-7583922_latest.zip && \
48-
# hackytrick as google is stupid
49-
mkdir /home/${USER}/android-sdk/cmdline-tools/ && \
50-
# now copy the cmdlone-tools folder as the actual tools folder
51-
mv cmdline-tools /home/${USER}/android-sdk/cmdline-tools/tools && \
52-
# remove the temp folder
53-
cd /home/${USER} && \
54-
rm -rf /home/${USER}/cmdline-tools-tmp
55-
56-
# Set environment variable
57-
ENV ANDROID_HOME /home/${USER}/android-sdk
62+
ENV ANDROID_HOME=/home/${USER}/android-sdk
5863
ENV ANDROID_SDK=${ANDROID_HOME}
59-
ENV PATH ${ANDROID_HOME}/cmdline-tools/tools:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator:${ANDROID_HOME}/cmdline-tools/tools/bin:$ANDROID_NDK_HOME:$PATH
60-
61-
#define the values to install/setup via the sdk manager
62-
ARG BUILD_TOOLS_VERSION=30.0.2
63-
ARG PLATFORMS_VERSION=android-29
64-
ARG ARCHITECTURE=x86
65-
66-
# Make license agreement
67-
RUN yes | $ANDROID_HOME/cmdline-tools/tools/bin/sdkmanager --licenses
64+
ENV PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator:${ANDROID_NDK_HOME}:${PATH}
6865

69-
# Update and install using sdkmanager
70-
RUN $ANDROID_HOME/cmdline-tools/tools/bin/sdkmanager "tools" "platform-tools" "build-tools;${BUILD_TOOLS_VERSION}" "platforms;${PLATFORMS_VERSION}" "system-images;${PLATFORMS_VERSION};default;${ARCHITECTURE}" "extras;android;m2repository" "extras;google;m2repository"
66+
# Accept licenses and install SDK components
67+
ARG BUILD_TOOLS_VERSION=35.0.0
68+
ARG PLATFORMS_VERSION=android-35
69+
ARG ARCHITECTURE=x86_64
7170

72-
# uncomment if you need to run the docker image standalone for testing purpose
73-
#CMD tail -f /dev/null
71+
RUN yes | sdkmanager --licenses && \
72+
sdkmanager "platform-tools" "build-tools;${BUILD_TOOLS_VERSION}" "platforms;${PLATFORMS_VERSION}" \
73+
"system-images;${PLATFORMS_VERSION};default;${ARCHITECTURE}" \
74+
"extras;android;m2repository" "extras;google;m2repository"

docker-agent/builder.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ fi
3838
if [ "$SIGN_APK" = true ] ; then
3939
echo "Signing APK with given details"
4040
clientVersion=$(sed -ne "s/.*ANDROID_CLIENT_MAJOR_VERSION = \"\([^']*\)\"/\1/p" buildSrc/src/main/kotlin/Dependencies.kt)
41-
/home/android-agent/android-sdk/build-tools/30.0.2/apksigner sign --ks ${HOME}/wire-android/${KEYSTORE_PATH} --ks-key-alias ${KEYSTORE_KEY_NAME} --ks-pass pass:${KSTOREPWD} --key-pass pass:${KEYPWD} "${HOME}/wire-android/app/build/outputs/apk/wire-${CUSTOM_FLAVOR,,}-${BUILD_TYPE,,}-${clientVersion}${PATCH_VERSION}.apk"
41+
/home/android-agent/android-sdk/build-tools/35.0.0/apksigner sign --ks ${HOME}/wire-android/${KEYSTORE_PATH} --ks-key-alias ${KEYSTORE_KEY_NAME} --ks-pass pass:${KSTOREPWD} --key-pass pass:${KEYPWD} "${HOME}/wire-android/app/build/outputs/apk/wire-${CUSTOM_FLAVOR,,}-${BUILD_TYPE,,}-${clientVersion}${PATCH_VERSION}.apk"
4242
else
4343
echo "Apk will not be signed by the builder script"
4444
fi

0 commit comments

Comments
 (0)