learningequality / kolibri-installer-android

Android wrapper for Kolibri.
MIT License
26 stars 22 forks source link

WIP: Makefile iteration #15

Closed DXCanas closed 7 years ago

DXCanas commented 7 years ago

Can't get the makefile in #14 to work locally. Including some optimizations while debugging.

Tried to minimize docker layers while also making greater use of cache. Fixes the errors I was getting while trying to build with #14. I've got a few ideas to make the build go even faster, but I figure I can do those when there are less urgent things to get on. Works in my local tests!

christianmemije commented 7 years ago

Since you moved generateversion.py and rundocker.sh to the /src dir now they are being bundled into the apk. We don't need those files.

V/PythonActivity(11678): Extracting private assets.
V/python  (11678): extracting kolibri-0.6.dev020170922004728_git-py2.py3-none-any.whl
V/python  (11678): extracting generateversion.py
V/python  (11678): extracting _load.html
V/python  (11678): extracting main.py
V/python  (11678): extracting logo.png
V/python  (11678): extracting sitecustomize.py
V/python  (11678): extracting rundocker.sh
V/python  (11678): extracting loading-spinner.gif
V/python  (11678): extracting kolibri/
V/python  (11678): extracting kolibri/__main__.py
.
.
.
christianmemije commented 7 years ago

The docker build stalls on me after # APK Kolibri-0.6.0.1709271638-debug.apk available in the bin directory

christianmemije commented 7 years ago

I'm not sure why cleanup is done in this step.

Step 7/9 : RUN useradd -l kivy &&   chown -R kivy:kivy /home/kivy &&  su kivy -c make updatedependencies
 ---> Running in 32c1e982fac6
# Make bin directory, where APK is held. Empty if it exists.
mkdir -p bin
rm -f bin/*.apk 2> /dev/null
rm -rf ./src/kolibri 2> /dev/null
 ---> 676916a9fb41
Removing intermediate container 32c1e982fac6
christianmemije commented 7 years ago

The docker build stalls on me after # APK Kolibri-0.6.0.1709271638-debug.apk available in the bin directory

Actually it stalls for maybe 5-10 min and then it continues

 ---> 33bb0de0a1f4
Removing intermediate container f9681bd54a67
Successfully built 33bb0de0a1f4
Successfully tagged kolibrikivy:latest
bash ./src/rundocker.sh
Changing owner from 0:0 to 1000:1000

I wonder if it just timesout?

DXCanas commented 7 years ago

Since you moved generateversion.py and rundocker.sh to the /src dir now they are being bundled into the apk. We don't need those files.

huh. I didn't realize that the entire src directory was being unpacked into the apk, I thought it was restricted to src/kolibri. Do you know where this is specified?

The docker build stalls on me after # APK Kolibri-0.6.0.1709271638-debug.apk available in the bin directory Actually it stalls for maybe 5-10 min and then it continues

For me it stalls for a little while (maybe 30 secs?) then proceeds. Not sure if that's a feature of docker (to have somone do some work on the container image's final container) or a bug :man_shrugging: @aronasorman ? 5-10min sounds insane.

I'm not sure why cleanup is done in this step.

Again, didn't know all of src was being emptied into the apk. I think it'd be a good idea to enxapsulate it into a kolibri dir

Will patch typo

The I moved things into the src dir to minimize the number of COPYs and therefore layers of the docker image. Might not be worth.

christianmemije commented 7 years ago

huh. I didn't realize that the entire src directory was being unpacked into the apk, I thought it was restricted to src/kolibri.

Well we need the other resources besides the kolibri dir that is extracted from the whl file. Like the images, main.py, etc.

christianmemije commented 7 years ago

Well regarding I'm not sure why cleanup is done in this step., I do not know why that make recipe is called again if it only called in one place