Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Reproducable Builds #15

Open
danieldjewell opened this issue Jun 8, 2020 · 1 comment
Open

Docker Reproducable Builds #15

danieldjewell opened this issue Jun 8, 2020 · 1 comment

Comments

@danieldjewell
Copy link

Hi Evan,

I was reading #11 and had to laugh about the confusion. Anyhoo, I'm definitely in the right place and am talking about the right MESA (mesa.sourceforge.net)

The ultimate point made in #11 still holds - it's beneficial/important on many levels to have 100% reproducable builds in a docker image (which is why the Dockerfile concept even exists and what makes Docker so powerful -- with the same Dockerfile as the input, the finished container should be 100% identical for everyone ... each and every time... Which is amazing for testing - i.e. ensuring that your environment is 100% pristine and 100% consistent so that you don't have that fun situation of making a seemingly unrelated change to the OS and having your code break! 😁 )

The other major advantage is the way that Docker builds the container as intermediate layers - for the most part, each statement in a Dockerfile creates a new layer. If you change a statement midway through the file, Docker re-uses the parts above it that were already built - potentially making a rebuild significantly faster (depending on where your change is).

Essentially, the difference is: instead of starting a container, editing it (through say docker exec <container> bash), and saving it, you just put all of your "editing" commands into the Dockerfile - anything you need to run/edit/compile/etc. goes right in there. Which makes it 100% reproducable and much easier to fix/upgrade/edit.

Thoughts?

@evbauer
Copy link
Owner

evbauer commented Jun 9, 2020

Hmm, good thoughts. It does sound like this would be the best practice. I just haven't invested the time to become an expert in building via Dockerfiles, so my habit is to build interactively. I'll leave this issue open for a rainy day. If I haven't gotten to it by the time the next MESA release rolls out, I'll at least try to build the new one using a Dockerfile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants