Can I update a single service without stopping the others?

Hello,
I’m quite new on the balena ecosystem and I was wondering if there is any way to update a single service running on my raspberry without stopping and updating all the services.

Here’s my setup:
Raspberry Pi3B running balenaOS 2.43.0+rev1 development and supervisor version 10.2.2.
3 services running:

  • MQTT Server (mosquito docker image)
  • Custom server 1 (Custom docker file, Depends on MQTT Server)
  • Custom server 2 (Custom docker file, Depends on MQTT Server)

Let’s say that I am working on the code in Custom server 1 and I want to push the changes to the raspberry:
Right now the only way I know to do this is to do a balena push of the main docker-compose file but this stops and updates both Custom server 1 and Custom server 2.
I’m looking for a way to push an update to Custom server 1 without stopping Custom server 2.

I am considering implementing a hand-over update-strategy as a last-resort to minimise downtime for the other server but since I’m working in a low resources environment I would like to try anything else first

Hi @aleben,

So to clarify, you have a single device with multiple services, and you only want the altered services to be restarted. This should be the behaviour when you balena push now, unless one of your services is dependent on the other. If you have three services, and none of them depend on each other, then only the altered service should be recreated, the other two should continue running. Is this not the behaviour you’re seeing?

Best regards,

Heds

As it turns out you are right…
I wasn’t aware of a particular behaviour of CS2, as soon as Custom Server 2 detects that MQTT is not online CS2 starts to throw warnings and, eventually, after a fixed number of warnings it restarts itself.

Updating CS1 also updated the MQTT Server (CS1 depends on MQTT), since the MQTT server was offline CS2 started rebooting and I thought that was caused by balena updating the service -.-