Skip to content

Docker Reproducable Builds #15

@danieldjewell

Description

@danieldjewell

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions