Docker build for multiplatform arch is too slow sequentially on the same runner.
The build is now distributed on multiple runners. Each architecure image is pushed as a digest and is reconciled into a single image afterwards.
* refactor: remove unused default timeout
* feat: add persistent storage
Allows you to save the state to a file and load it upon restarting the app to restore the previous state.
* chore: upgrade to go 1.18
* use tinykv with generics
* build: add "-buildvcs=false" flag
Git is not available in golang:1.18-alpine image
Docker classic IsUp will return false when the container defines a healthcheck and is not healthy, otherwise as soon as it's started it's up.
Docker swarm will check that the number of required tasks is higher than 1, and that the number of running tasks matches the number of desired tasks.
A task is not running when it defines a healthcheck and is not healthy.