We have a composition which we run locally for developer usage (using a local Convox rack on each dev’s machine).
Some of the microservices we build can take a few minutes to build. Of course, if there’s already a Docker build cache in place, then it is nearly immediate.
We have several developers, so having each one be delayed by a few minutes each time a new version of the microservice is pushed - seems wasteful.
Is there an easy way in Convox to share the Docker build cache between all of our developers’ machines?
What about sharing the yarn/npm/pip cache between all of our developers’ machines? I guess this is out of the bounds of Convox, but maybe someone will have a quick idea.
Hey @alon,
Yeah, this is outside of Convox’s control as it’s in the Docker engine, and is a pattern whether you’re using Convox or not. You’d need to have the updated image available on each’s dev machine which would require them to pull it whenever it’s updated. Maybe you can set up some system to notify everyone when that happens and automatically pull it down to their machines?
As Convox controls Docker locally (e.g. when we do convox start, running it with --no-cache, etc) and enacts a work pattern and best practices, I thought it would make sense for Convox to potentially support this type of thing natively. Right now, we use build.context to build each service every time, rather then running an image pulled from a Docker repo. This is why we’re facing the build performance issue.
Once we move to using pre-built Docker images things will naturally be much faster, but this kind of change also loses some flexibility and is more structural - I was hoping for a “quick win”.