@@ -25,9 +25,12 @@ ENV LANG="en_US.UTF-8" \
25
25
LANGUAGE = "en_US.UTF-8" \
26
26
LC_ALL = "en_US.UTF-8"
27
27
28
- RUN apt - y update - qq \
29
- & & apt - y install - qq - - no - install - recommends curl unzip ca - certificates \
30
- & & apt - y autoremove
28
+ RUN apt - y update - qq > / dev / null & & apt - y install - qq - - no - install - recommends \
29
+ ca - certificates \
30
+ curl \
31
+ & & apt - y autoremove \
32
+ & & apt - y clean \
33
+ & & rm - rf / var / lib / apt / lists / *
31
34
32
35
# retry helper script, refs:
33
36
# https://github.com/kivy/python-for-android/issues/1306
@@ -37,37 +40,52 @@ RUN curl https://raw.githubusercontent.com/kadwanev/retry/1.0.1/retry \
37
40
38
41
ENV USER = "user"
39
42
ENV HOME_DIR = "/home/${USER}"
40
- ENV ANDROID_HOME = "${HOME_DIR}/.android"
41
- ENV WORK_DIR = "${HOME_DIR}" \
42
- PATH = "${HOME_DIR}/.local/bin:${PATH}"
43
+ ENV WORK_DIR = "${HOME_DIR}/app" \
44
+ PATH = "${HOME_DIR}/.local/bin:${PATH}" \
45
+ ANDROID_HOME = "${HOME_DIR}/.android" \
46
+ JAVA_HOME = "/usr/lib/jvm/java-8-openjdk-amd64"
43
47
44
- # install system dependencies
45
- RUN ${RETRY } apt - y install - qq - - no - install - recommends \
46
- python3 virtualenv python3 - pip python3 - venv \
47
- wget lbzip2 patch sudo python python - pip \
48
- & & apt - y autoremove
49
48
50
- # build dependencies
51
- # https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
49
+ # install system dependencies
52
50
RUN dpkg - - add - architecture i386 \
53
- & & ${RETRY } apt - y update - qq \
51
+ & & ${RETRY } apt - y update - qq > / dev / null \
54
52
& & ${RETRY } apt - y install - qq - - no - install - recommends \
55
- build - essential ccache git python3 python3 - dev \
56
- libncurses5 :i386 libstdc + + 6 :i386 libgtk2 .0 - 0 :i386 \
57
- libpangox - 1.0 - 0 :i386 libpangoxft - 1.0 - 0 :i386 libidn11 :i386 \
58
- zip zlib1g - dev zlib1g :i386 \
59
- & & apt - y autoremove
60
-
61
- # specific recipes dependencies (e.g. libffi requires autoreconf binary)
62
- RUN ${RETRY } apt - y install - qq - - no - install - recommends \
63
- libffi - dev autoconf automake cmake gettext libltdl - dev libtool pkg - config \
53
+ autoconf \
54
+ automake \
55
+ build - essential \
56
+ ccache \
57
+ cmake \
58
+ gettext \
59
+ git \
60
+ lbzip2 \
61
+ libffi - dev \
62
+ libgtk2 .0 - 0 :i386 \
63
+ libidn11 :i386 \
64
+ libltdl - dev \
65
+ libncurses5 :i386 \
66
+ libpangox - 1.0 - 0 :i386 \
67
+ libpangoxft - 1.0 - 0 :i386 \
68
+ libstdc + + 6 :i386 \
69
+ libtool \
70
+ openjdk - 8 - jdk \
71
+ patch \
72
+ pkg - config \
73
+ python \
74
+ python - pip \
75
+ python3 \
76
+ python3 - dev \
77
+ python3 - pip \
78
+ python3 - venv \
79
+ sudo \
80
+ unzip \
81
+ virtualenv \
82
+ wget \
83
+ zip \
84
+ zlib1g - dev \
85
+ zlib1g :i386 \
64
86
& & apt - y autoremove \
65
- & & apt - y clean
66
-
67
- # Install Java and set JAVA_HOME (to accept android's SDK licenses)
68
- RUN ${RETRY } apt - y install - qq - - no - install - recommends openjdk - 8 - jdk \
69
- & & apt - y autoremove & & apt - y clean
70
- ENV JAVA_HOME / usr / lib / jvm / java - 8 - openjdk - amd64
87
+ & & apt - y clean \
88
+ & & rm - rf / var / lib / apt / lists / *
71
89
72
90
# prepare non root env
73
91
RUN useradd - - create - home - - shell / bin / bash ${USER }
@@ -77,18 +95,23 @@ RUN usermod -append --groups sudo ${USER}
77
95
RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> / etc / sudoers
78
96
79
97
# install cython for python 2 (for python 3 it's inside the venv)
80
- RUN pip2 install - - upgrade Cython == 0.28 .6
98
+ RUN pip2 install - - upgrade Cython == 0.28 .6 \
99
+ & & rm - rf ~ / .cache /
81
100
82
101
WORKDIR ${WORK_DIR }
83
- COPY - - chown = user :user . ${WORK_DIR }
84
- RUN mkdir ${ANDROID_HOME } & & chown - - recursive ${USER } ${ANDROID_HOME }
102
+ RUN mkdir ${ANDROID_HOME } & & chown - - recursive ${USER } ${HOME_DIR } ${ANDROID_HOME }
85
103
USER ${USER }
86
104
87
105
# Download and install android's NDK/SDK
88
- RUN make - f ci / makefiles / android .mk target_os = linux
106
+ COPY ci / makefiles / android .mk / tmp / android .mk
107
+ RUN make - - file / tmp / android .mk target_os = linux \
108
+ & & sudo rm / tmp / android .mk
89
109
90
110
# install python-for-android from current branch
91
- RUN virtualenv - - python = python3 venv \
92
- & & . venv / bin / activate \
93
- & & pip3 install - - upgrade Cython == 0.28 .6 \
94
- & & pip3 install - e .
111
+ COPY - - chown = user :user Makefile README .md setup .py pythonforandroid / __init__ .py ${WORK_DIR }/
112
+ RUN mkdir pythonforandroid \
113
+ & & mv __init__ .py pythonforandroid / \
114
+ & & make virtualenv \
115
+ & & rm - rf ~ / .cache /
116
+
117
+ COPY - - chown = user :user . ${WORK_DIR }
0 commit comments