angelnu / docker-ccu

Script to create a docker container with the CCU2 firmware
Apache License 2.0
33 stars 14 forks source link

Install "Zusatzsoftware" #6

Closed omo2002 closed 7 years ago

omo2002 commented 7 years ago

Hi, thank you for proving raspberrymatic in a docker image. I am just using your pre-built one. I am wondering whether it is possible to install additional software like Cux Deamon via the GUI? Currently there seems that simply nothing happens, when an additional software package should be installed. Also the reboot via the homematic GUI does not work. Any ideas ?

anunezde commented 7 years ago

Hi, reboot does not work from within the docker containers but you can achieve the same effect with "docker restart ccu2".

About the apps - I have not installed any since long ago when I was still using a CCU1 so I do not know much about them. I took a look at the Cux install script and it "should" work since it copies itself to the data volume (/usr/local). It then requires a reboot so you should try a "docker restart ccu2" after you did the install.

omo2002 commented 7 years ago

Hi, examining the CuX package, there is a file called update_script which should be called by the CCU2 and this file should copy all the files to /usr/local. But this does not happen. I inspected the running container with a shell and did not find any files. Also a restart does not help. Removing the check for the commandline param in the update script is not issue, too. Any ideas ?

anunezde commented 7 years ago

I would suggest to try to execute the tool manually within the docker container (docker exec ...) so we can find out if the problem is with the tool or that the CCU firmware is not executing the script (maybe doing some checking that fails before trying to execute)

omo2002 commented 7 years ago

I did a test:

-> the output mount: permission denied (are you root?) -> this comes from the line :mount /usr/local cp: can't stat '/usr/local/addons/cuxd/cuxd.ps': No such file or directory set(cuxd)

CuxD is visible in "Zusatzsoftware", so I would say, it works. I do not know where the UI copies the gz file to. Maybe the initial copy fails because of a not existant or accessible directory.

angelnu commented 7 years ago

The error by mount is because I only set minimal permissions to the Docker container. If mount is required it could be enabled.

@omo2002 I also suspect a folder not being mounted that the web install checks. My candidate would be /tmp being a tempfs mount point. If this is the problem it would be trivial to fix.

Would you try that or are you ok with the manual circumvention?

omo2002 commented 7 years ago

I had the manual already in the past, my hope was, to use the ui because it is easier. Maybe you can make an improvement with the next image.

omo2002 commented 7 years ago

hey man ! I saw your updated image yesterday, i tried the image and - it works now ! Now I can upload the *.tar.gz file via UI and - after a restart of the container - the new software shows up. I saw you fixed the entrypoint.sh and included a rsync to copy the files to /usr/local. Thanks for the great work.

angelnu commented 7 years ago

@omo2002 - to be honest, I do not know how the change I did would help with the additional SW but glad that it works :-D

My fix was mainly intended to avoid starting the container if the data volume is empty. I have my CCU2 data in a glusterfs node for fail-over capabilities (I have a second PI set in a docker swarm) and I had race conditions issues at boot time where the CCU2 docker image started before the glustefs volumes were mounted.