@@ -25,9 +25,12 @@ ENV LANG="en_US.UTF-8" \
2525 LANGUAGE = "en_US.UTF-8" \
2626 LC_ALL = "en_US.UTF-8"
2727
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 / *
3134
3235# retry helper script, refs:
3336# https://github.com/kivy/python-for-android/issues/1306
@@ -37,37 +40,53 @@ RUN curl https://raw.githubusercontent.com/kadwanev/retry/1.0.1/retry \
3740
3841ENV USER = "user"
3942ENV 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"
4347
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
4948
50- # build dependencies
51- # https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
49+ # install system dependencies
5250RUN dpkg - - add - architecture i386 \
53- & & ${RETRY } apt - y update - qq \
51+ & & ${RETRY } apt - y update - qq > / dev / null \
5452 & & ${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+ autopoint \
56+ build - essential \
57+ ccache \
58+ cmake \
59+ gettext \
60+ git \
61+ lbzip2 \
62+ libffi - dev \
63+ libgtk2 .0 - 0 :i386 \
64+ libidn11 :i386 \
65+ libltdl - dev \
66+ libncurses5 :i386 \
67+ libpangox - 1.0 - 0 :i386 \
68+ libpangoxft - 1.0 - 0 :i386 \
69+ libstdc + + 6 :i386 \
70+ libtool \
71+ openjdk - 8 - jdk \
72+ patch \
73+ pkg - config \
74+ python \
75+ python - pip \
76+ python3 \
77+ python3 - dev \
78+ python3 - pip \
79+ python3 - venv \
80+ sudo \
81+ unzip \
82+ virtualenv \
83+ wget \
84+ zip \
85+ zlib1g - dev \
86+ zlib1g :i386 \
6487 & & 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
88+ & & apt - y clean \
89+ & & rm - rf / var / lib / apt / lists / *
7190
7291# prepare non root env
7392RUN useradd - - create - home - - shell / bin / bash ${USER }
@@ -77,18 +96,23 @@ RUN usermod -append --groups sudo ${USER}
7796RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> / etc / sudoers
7897
7998# install cython for python 2 (for python 3 it's inside the venv)
80- RUN pip2 install - - upgrade Cython == 0.28 .6
99+ RUN pip2 install - - upgrade Cython == 0.28 .6 \
100+ & & rm - rf ~ / .cache /
81101
82102WORKDIR ${WORK_DIR }
83- COPY - - chown = user :user . ${WORK_DIR }
84- RUN mkdir ${ANDROID_HOME } & & chown - - recursive ${USER } ${ANDROID_HOME }
103+ RUN mkdir ${ANDROID_HOME } & & chown - - recursive ${USER } ${HOME_DIR } ${ANDROID_HOME }
85104USER ${USER }
86105
87106# Download and install android's NDK/SDK
88- RUN make - f ci / makefiles / android .mk target_os = linux
107+ COPY ci / makefiles / android .mk / tmp / android .mk
108+ RUN make - - file / tmp / android .mk target_os = linux \
109+ & & sudo rm / tmp / android .mk
89110
90111# 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 .
112+ COPY - - chown = user :user Makefile README .md setup .py pythonforandroid / __init__ .py ${WORK_DIR }/
113+ RUN mkdir pythonforandroid \
114+ & & mv __init__ .py pythonforandroid / \
115+ & & make virtualenv \
116+ & & rm - rf ~ / .cache /
117+
118+ COPY - - chown = user :user . ${WORK_DIR }
0 commit comments