1
1
# based on https://github.com/kivy/python-for-android/blob/master/Dockerfile
2
2
3
-
8000
FROM ubuntu:18.04
3
+ FROM ubuntu:20.04
4
+
5
+ ENV DEBIAN_FRONTEND=noninteractive
4
6
5
7
ENV ANDROID_HOME="/opt/android"
6
8
@@ -38,10 +40,11 @@ RUN curl --location --progress-bar \
38
40
ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
39
41
40
42
# get the latest version from https://developer.android.com/studio/index.html
41
- ENV ANDROID_SDK_TOOLS_VERSION="4333796 "
42
- ENV ANDROID_SDK_BUILD_TOOLS_VERSION="28 .0.3"
43
- ENV ANDROID_SDK_TOOLS_ARCHIVE="sdk-tools- linux-${ANDROID_SDK_TOOLS_VERSION}.zip"
43
+ ENV ANDROID_SDK_TOOLS_VERSION="6514223 "
44
+ ENV ANDROID_SDK_BUILD_TOOLS_VERSION="29 .0.3"
45
+ ENV ANDROID_SDK_TOOLS_ARCHIVE="commandlinetools- linux-${ANDROID_SDK_TOOLS_VERSION}_latest .zip"
44
46
ENV ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}"
47
+ ENV ANDROID_SDK_MANAGER="${ANDROID_SDK_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_HOME}"
45
48
46
49
# download and install Android SDK
47
50
RUN curl --location --progress-bar \
@@ -58,15 +61,15 @@ RUN mkdir --parents "${ANDROID_SDK_HOME}/.android/" \
58
61
59
62
# accept Android licenses (JDK necessary!)
60
63
RUN apt -y update -qq \
61
- && apt -y install -qq --no-install-recommends openjdk-8 -jdk \
64
+ && apt -y install -qq --no-install-recommends openjdk-13 -jdk \
62
65
&& apt -y autoremove
63
- RUN yes | "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" --licenses > /dev/null
66
+ RUN yes | ${ANDROID_SDK_MANAGER} --licenses > /dev/null
64
67
65
68
# download platforms, API, build tools
66
- RUN "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-24" > /dev/null && \
67
- "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-28" > /dev/null && \
68
- "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null && \
69
- "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "extras;android;m2repository" > /dev/null && \
69
+ RUN ${ANDROID_SDK_MANAGER} "platforms;android-24" > /dev/null && \
70
+ ${ANDROID_SDK_MANAGER} "platforms;android-28" > /dev/null && \
71
+ ${ANDROID_SDK_MANAGER} "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null && \
72
+ ${ANDROID_SDK_MANAGER} "extras;android;m2repository" > /dev/null && \
70
73
chmod +x "${ANDROID_SDK_HOME}/tools/bin/avdmanager"
71
74
72
75
# download ANT
@@ -96,27 +99,18 @@ RUN apt -y update -qq \
96
99
software-properties-common libssl-dev \
97
100
&& apt -y autoremove
98
101
99
- # install kivy
100
- RUN add-apt-repository ppa:kivy-team/kivy \
101
- && apt -y update -qq \
102
- && apt -y install -qq --no-install-recommends python3-kivy \
103
- && apt -y autoremove \
104
- && apt -y clean
105
-
106
102
# build dependencies
107
103
# https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
108
104
RUN dpkg --add-architecture i386 \
109
105
&& apt -y update -qq \
110
106
&& apt -y install -qq --no-install-recommends \
111
107
build-essential ccache git python3 python3-dev \
112
108
libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 \
113
- libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 \
109
+ libidn11:i386 \
114
110
zip zlib1g-dev zlib1g:i386 \
115
111
&& apt -y autoremove \
116
112
&& apt -y clean
117
113
118
- RUN python3 -m pip install image
119
-
120
114
# specific recipes dependencies (e.g. libffi requires autoreconf binary)
121
115
RUN apt -y update -qq \
122
116
&& apt -y install -qq --no-install-recommends \
@@ -141,9 +135,11 @@ RUN chown ${USER} /opt
141
135
USER ${USER}
142
136
143
137
144
- RUN python3 -m pip install --upgrade cython==0.28.6
145
- RUN python3 -m pip install --upgrade pip
146
- RUN python3 -m pip install --user wheel
138
+ RUN python3 -m pip install --user --upgrade pip
139
+ RUN python3 -m pip install --user --upgrade wheel
140
+ RUN python3 -m pip install --user --upgrade cython==0.29.19
141
+ RUN python3 -m pip install --user --pre kivy
142
+ RUN python3 -m pip install --user image
147
143
148
144
# prepare git
149
145
RUN git config --global user.name "John Doe" \
@@ -155,7 +151,7 @@ RUN cd /opt \
155
151
&& cd buildozer \
156
152
&& git remote add sombernight https://github.com/SomberNight/buildozer \
157
153
&& git fetch --all \
158
- && git checkout "d0323c165dd5d9aa23d5eb01044474fe006c3420 ^{commit}" \
154
+ && git checkout "94cfcb8d591c11d6ad0e11f129b08c1e27a161c5 ^{commit}" \
159
155
&& python3 -m pip install --user -e .
160
156
161
157
# install python-for-android
@@ -164,7 +160,7 @@ RUN cd /opt \
164
160
&& cd python-for-android \
165
161
&& git remote add sombernight https://github.com/SomberNight/python-for-android \
166
162
&& git fetch --all \
167
- && git checkout "cef08b92268fe69ef331699c2205cbb091e730f0 ^{commit}" \
163
+ && git checkout "257cfacbdd523af0b5b6bb5b2ba64ab7a5c82d58 ^{commit}" \
168
164
&& python3 -m pip install --user -e .
169
165
170
166
# build env vars
0 commit comments