Installing A Package That Requires The System To Be Up

systemd
docker

#1

Here is a stumper. I have some rpm’s that won’t install correctly if the system is not fully up and running (not particularly well designed). Since this is the case they apparently can’t be installed via the Dockerfile since among other things systemd is not running.

I can install them during the startup sequence put it’s a 15 or 20 minute setup time - not the best when you are doing a demo :slight_smile:

Is there a way to perhaps do a docker commit and pushing the container back up to the resin cloud? Maybe something else equally creative?

-Andy


#2

Hey, it seems like a job for resin build and resin deploy parts of the resin-cli. They let you build the container locally, and just push to the servers and deployed on your devices.

You could basically run a resin deploy <AppName> --build --source <BuildDir>, where you can fill out the parts to match your setup (the app name, and where your Dockerfile is).

What device type are you using? if x86 types (like NUC), then you should be good to go (depending on how “not well designed” your rpm is). If any of the ARM types like Raspberry Pi, you might need to set up QEMU so locally your system, or you can use a “-dev” resinOS device as a build server, check the example here:

(curious, what rpm you have, and whether there can be some patches upstreamed so it wouldn’t need that any more, but that’s a whole different level of discussion, not useful in the short term)