Skip to content

Commit 991e470

Browse files
committed
update the Dockerfile in the .buildbot/kivy
1 parent a9f50e2 commit 991e470

File tree

1 file changed

+102
-63
lines changed

1 file changed

+102
-63
lines changed

.buildbot/android/Dockerfile

Lines changed: 102 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,117 @@
1+
12
# A container for buildbot
23
FROM ubuntu:bionic AS android
34
# FROM ubuntu:20.04 AS buildbot-bionic
45

5-
RUN apt -y update -qq
6-
RUN apt -y install wget
7-
8-
RUN wget -nc "https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip"
9-
RUN wget -nc "https://dl.google.com/android/repository/android-ndk-r23b-linux.zip"
10-
RUN wget -nc "http://archive.apache.org/dist/ant/binaries/apache-ant-1.10.12-bin.tar.gz"
11-
12-
# SYSTEM DEPENDENCIES
13-
14-
RUN apt -y install --no-install-recommends python3-pip \
15-
pip3 python3 virtualenv python3-setuptools \
16-
python3-wheel git unzip sudo patch bzip2 lzma
17-
RUN apt -y autoremove
18-
19-
# BUILD DEPENDENCIES
6+
ENV ANDROID_HOME="/opt/android"
207

21-
RUN dpkg --add-architecture i386
22-
RUN apt -y update -qq
23-
RUN apt -y install -qq --no-install-recommends build-essential \
24-
ccache git python3 python3-dev libncurses5:i386 libstdc++6:i386 \
25-
libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 \
26-
libidn11:i386 zip zlib1g-dev zlib1g:i386
27-
RUN apt -y autoremove
28-
RUN apt -y clean
8+
RUN apt -y update -qq \
9+
&& apt -y install -qq --no-install-recommends curl unzip ca-certificates \
10+
&& apt -y autoremove
2911

30-
# RECIPES DEPENDENCIES
3112

32-
RUN dpkg --add-architecture i386
33-
RUN apt -y update -qq
34-
RUN apt -y install -qq --no-install-recommends libffi-dev autoconf \
35-
automake cmake gettext libltdl-dev libtool pkg-config
36-
RUN apt -y autoremove
37-
RUN apt -y clean
38-
39-
# INSTALL ANDROID PACKAGES
40-
41-
RUN pip3 install buildozer==1.2.0
42-
RUN pip3 install --upgrade cython==0.29.15
43-
44-
# INSTALL NDK
13+
ENV ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
14+
ENV ANDROID_NDK_VERSION="22b"
15+
ENV ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"
4516

4617
# get the latest version from https://developer.android.com/ndk/downloads/index.html
47-
RUN mkdir --parents "/opt/android/android-ndk-r23b"
48-
RUN unzip -q "android-ndk-r23b-linux.zip" -d "/opt/android"
49-
RUN ln -sfn "/opt/android/android-ndk-r23b" "/opt/android/android-ndk"
50-
RUN rm -rf "android-ndk-r23b-linux.zip"
51-
52-
# INSTALL APACHE-ANT
18+
ENV ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux-x86_64.zip"
19+
ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
5320

54-
RUN tar -xf "apache-ant-1.10.12-bin.tar.gz" -C "/opt/android"
55-
RUN ln -sfn "/opt/android/apache-ant-1.10.12" "/opt/android/apache-ant"
56-
RUN rm -rf "apache-ant-1.10.12-bin.tar.gz"
21+
# download and install Android NDK
22+
RUN curl "${ANDROID_NDK_DL_URL}" \
23+
--output "${ANDROID_NDK_ARCHIVE}" \
24+
&& mkdir --parents "${ANDROID_NDK_HOME_V}" \
25+
&& unzip -q "${ANDROID_NDK_ARCHIVE}" -d "${ANDROID_HOME}" \
26+
&& ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
27+
&& rm -rf "${ANDROID_NDK_ARCHIVE}"
5728

58-
# INSTALL SDK
29+
ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
5930

6031
# get the latest version from https://developer.android.com/studio/index.html
61-
RUN mkdir --parents "/opt/android/android-sdk"
62-
RUN unzip -q "sdk-tools-linux-4333796.zip" -d "/opt/android/android-sdk"
63-
RUN rm -rf "sdk-tools-linux-4333796.zip"
64-
# update Android SDK, install Android API, Build Tools...
65-
RUN mkdir --parents "/opt/android/android-sdk/.android/"
32+
ENV ANDROID_SDK_TOOLS_VERSION="8092744"
33+
ENV ANDROID_SDK_BUILD_TOOLS_VERSION="30.0.3"
34+
ENV ANDROID_SDK_TOOLS_ARCHIVE="commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip"
35+
ENV ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}"
36+
ENV ANDROID_SDK_MANAGER="${ANDROID_SDK_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_HOME}"
37+
38+
# download and install Android SDK
39+
RUN curl "${ANDROID_SDK_TOOLS_DL_URL}" \
40+
--output "${ANDROID_SDK_TOOLS_ARCHIVE}" \
41+
&& mkdir --parents "${ANDROID_SDK_HOME}" \
42+
&& unzip -q "${ANDROID_SDK_TOOLS_ARCHIVE}" -d "${ANDROID_SDK_HOME}" \
43+
&& mv "${ANDROID_SDK_HOME}/cmdline-tools" "${ANDROID_SDK_HOME}/tools" \
44+
&& rm -rf "${ANDROID_SDK_TOOLS_ARCHIVE}"
45+
46+
# update Android SDK, install Android API, Build Tools...
47+
RUN mkdir --parents "${ANDROID_SDK_HOME}/.android/" \
48+
&& echo '### User Sources for Android SDK Manager' \
49+
> "${ANDROID_SDK_HOME}/.android/repositories.cfg"
50+
6651
# accept Android licenses (JDK necessary!)
67-
RUN apt -y update -qq
68-
RUN apt -y install -qq --no-install-recommends openjdk-11-jdk
69-
RUN apt -y autoremove
70-
RUN yes | "/opt/android/android-sdk/tools/bin/sdkmanager" "build-tools;29.0.2" > /dev/null
52+
RUN apt -y update -qq \
53+
&& apt -y install -qq --no-install-recommends \
54+
openjdk-11-jdk-headless \
55+
&& apt -y autoremove
56+
RUN yes | ${ANDROID_SDK_MANAGER} --licenses > /dev/null
57+
7158
# download platforms, API, build tools
72-
RUN "/opt/android/android-sdk/tools/bin/sdkmanager" "platforms;android-24" > /dev/null
73-
RUN "/opt/android/android-sdk/tools/bin/sdkmanager" "platforms;android-28" > /dev/null
74-
RUN "/opt/android/android-sdk/tools/bin/sdkmanager" "build-tools;29.0.2" > /dev/null
75-
RUN "/opt/android/android-sdk/tools/bin/sdkmanager" "extras;android;m2repository" > /dev/null
76-
RUN find /opt/android/android-sdk -type f -perm /0111 -print0|xargs -0 chmod a+x
77-
RUN chown -R buildbot.buildbot /opt/android/android-sdk
78-
RUN chmod +x "/opt/android/android-sdk/tools/bin/avdmanager"
59+
RUN ${ANDROID_SDK_MANAGER} "platforms;android-30" > /dev/null && \
60+
${ANDROID_SDK_MANAGER} "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null && \
61+
${ANDROID_SDK_MANAGER} "extras;android;m2repository" > /dev/null && \
62+
chmod +x "${ANDROID_SDK_HOME}/tools/bin/avdmanager"
63+
64+
# download ANT
65+
ENV APACHE_ANT_VERSION="1.9.4"
66+
ENV APACHE_ANT_ARCHIVE="apache-ant-${APACHE_ANT_VERSION}-bin.tar.gz"
67+
ENV APACHE_ANT_DL_URL="https://archive.apache.org/dist/ant/binaries/${APACHE_ANT_ARCHIVE}"
68+
ENV APACHE_ANT_HOME="${ANDROID_HOME}/apache-ant"
69+
ENV APACHE_ANT_HOME_V="${APACHE_ANT_HOME}-${APACHE_ANT_VERSION}"
70+
71+
RUN curl "${APACHE_ANT_DL_URL}" \
72+
--output "${APACHE_ANT_ARCHIVE}" \
73+
&& tar -xf "${APACHE_ANT_ARCHIVE}" -C "${ANDROID_HOME}" \
74+
&& ln -sfn "${APACHE_ANT_HOME_V}" "${APACHE_ANT_HOME}" \
75+
&& rm -rf "${APACHE_ANT_ARCHIVE}"
76+
77+
# install system/build dependencies
78+
RUN apt -y update -qq \
79+
&& apt -y install -qq --no-install-recommends \
80+
python3 \
81+
python3-dev \
82+
python3-pip \
83+
python3-setuptools \
84+
python3-venv \
85+
wget \
86+
lbzip2 \
87+
bzip2 \
88+
lzma \
89+
patch \
90+
sudo \
91+
software-properties-common \
92+
git \
93+
zip \
94+
unzip \
95+
build-essential \
96+
ccache \
97+
autoconf \
98+
libtool \
99+
pkg-config \
100+
zlib1g-dev \
101+
libncurses5-dev \
102+
libncursesw5-dev \
103+
libtinfo5 \
104+
cmake \
105+
libffi-dev \
106+
libssl-dev \
107+
automake \
108+
gettext \
109+
libltdl-dev \
110+
libidn11 \
111+
&& apt -y autoremove \
112+
&& apt -y clean
113+
114+
# INSTALL ANDROID PACKAGES
115+
116+
RUN pip3 install buildozer==1.2.0
117+
RUN pip3 install --upgrade cython==0.29.15

0 commit comments

Comments
 (0)