balena-os / balena-supervisor

Balena Supervisor: balena's agent on devices.
https://balena.io
Other
150 stars 63 forks source link

Can't get the supervisor to run due to 'overlay' not found errors #136

Closed matus-tomlein closed 8 years ago

matus-tomlein commented 8 years ago

I'm struggling to get the supervisor (tag v1.8.0) to run on Ubuntu 16.04 (Docker version 1.11.1). I have followed the steps in the README and created a tools/dind/config.json file (by copying it from an image of an Intel Edison application). I have deployed the supervisor image to my docker account.

I have trouble with getting the supervisor to run. I run the Makefile target using the following command:

make ARCH=amd64 SUPERVISOR_IMAGE=matustomlein/resin-supervisor:master run-supervisor

The build passes and creates a docker instance, however in the logs (docker exec -it resin_supervisor_1 journalctl -f), it raises several errors: https://gist.github.com/matus-tomlein/98868753ca35a29e82a8788a9fc03dfa

I can see three kinds of errors there:

I assume that the first error is the source of the problems.

I have also tried to run it on my Mac (Docker 1.8.2), but after I execute run-supervisor and look at the journal, the only thing it shows is: No journal files were found.

Is my configuration not supported? Or can you see anything that I am doing wrong?

Thanks!

Page- commented 8 years ago

Hey @matus-tomlein, for the 'overlay' not found as a supported filesystem on this host error could you try running modprobe overlay to make sure overlayfs support is loaded. If that doesn't fix it you could also try removing the tools/dind/config/services/docker.service.d/overlayfs.conf file in order to let docker use whatever storage engine it decides best (although I can't guarantee how well it will work on others - do let me know if you try that and hit any issues though)

As for the docker.service start request repeated too quickly, refusing to start that is just due to docker failing to start due to the overlayfs error, and the UUID error is because the supervisor hasn't started yet in order to generate/register a UUID for the VPN to use.

matus-tomlein commented 8 years ago

Thanks a lot for the tips @Page-!

I tried running modprobe overlay, which executed without any output. When I started the supervisor after that, I just got an error in the container logs (the same as the one I get on Mac): No journal files were found.

However, removing the overalyfs.conf file helped - I got the supervisor running, it registered and I was able to deploy the app. As far as I can tell it seems to be working fine.

Page- commented 8 years ago

For the No journal files were found. error @matus-tomlein, is that when running journalctl in the supervisor container itself, ie the one that is the matustomlein/resin-supervisor:master image? Because the supervisor logs are written to /var/log/resin_supervisor_stdout.log, so I would expect that error in the supervisor container (but not the docker in docker parent)

matus-tomlein commented 8 years ago

I got the message from running journalctl inside the dind container, not the supervisor - the /var/log/supervisor-log/resin_supervisor_stdout.log doesn't even exist when the error happens.

But actually I just tried to run it again with the overlays.conf configuration and it seems to work on the Ubuntu. I actually don't know what helped - I ran the modprobe overlay command that you suggested, restarted a few times and recloned and redeployed the supervisor to Docker again.

I still get No journal files found error from journalctl on my Mac - but I think that is because it doesn't support overlayfs. When I run modprobe overlay in the VM, it returns: modprobe: module overlay not found in modules.dep