lucet
lucet copied to clipboard
Automate pushing fastly/lucet docker image
The fastly/lucet
image on Docker Hub is currently manually pushed by @jedisct1. We should automate and document its existence.
The Docker Hub can automatically rebuild an image after a git commit in a specific branch.
It also supports dependencies, so that if the base image is updated, dependent images can automatically be updated.
So, one way to achieve that can be to create a stable
branch that we merge code from the master
branch when we feel comfortable having a new image built.
This needs to be monitored, though. I've been using these features for quite some time, and the Docker Hub hasn't always been very reliable.
Think it would be worth doing two images? One for bleeding edge master
commits, and another for stable once we start doing more regular releases?
I'm not convinced that this is necessary.
master
is development code. It can have breaking changes. It can introduce code that's still in very early stage. Documentation will not be present or up to date. Tools that haven't been updated can stop being compatible with the rest of the code.
And people will open tickets about why their code doesn't compile any more. Why the paths changed. How to use that library whose first bits were committed 5 minutes ago.
Handling these tickets is time consuming. It also prevents authors and contributors from iterating quickly. People who need the bleeding edge are people who want to hack on Lucet code itself, and they don't need a pre-built image.
stable
is the branch virtually everybody should use. And it can be updated frequently. It doesn't track point releases, it's a rolling release. Major bug fixes will be immediately merged. Everything else will be merged every time the repository is in a consistent state (documentation is up to date, all the tools work together).
master
can also be the stable branch and dev
a branch we hack on.
But my point is that if we publish a Docker image updated after every single commit, a lot of people will use it because it only because it's fresher, so it has to be "better". Whereas it may not be the case.
We want people to always have a good experience with Lucet. And the best way to do it is to provide only something that's in a consistent state and works as documented. If the bleeding edge image doesn't work as expected, newcomers may not even try the stable one.
Just my 2 cents.
That works. Let's do it. :)