We are having increasing problems with balena deploy
timing out. We are using a microservices application with about 8 services. Every service is built upon the same common base image that we call the runner
image that include all our dependencies. The runner
image is about 800 mb in size and we rely on docker layer caching hoping it will not need to upload 8x800 mb when we do a balena deploy
.
In this situation we are lacking the following:
1)
It would be nice if the balena deploy
command could show progress on how much data it has uploaded so far.
A confirmation of our assumption that layer caching will be used when deploying microservices applications where the service images share 90% of their docker layers with a common base image.
The assumption is that we are uploading 1x base image layers and not Nx base image layers if there are N services.
When reviewing the source code of balena cli it seems balena deploy
will push every image in the docker-compose.yml
file in parallel to the balena registry. This is problematic when you use a microservices application with many services that are all built on top of the same large common base image. It seems that when pushing the images in parallel it cannot be taken advantage of the large common layers in the images.