Coder Social home page Coder Social logo

Comments (3)

alexmiller-apple avatar alexmiller-apple commented on June 26, 2024 4

We discussed, and there's no team objection to pushing an official container image, so I'll go and do that.

from foundationdb.

alexmiller-apple avatar alexmiller-apple commented on June 26, 2024

I've felt kind of stuck between two difficult places here. I understand your sentiment that, particularly now that there will be frequent builds by various people of the docker image, it'd be nice to have everything pinned to a fixed version so that everyone gets exactly the same image.

On the other hand, I found it to be an incredible difficulty in upgrading the packages listed by a dockerfile that had all dependencies specified and versions pinned. The dependencies change across versions, new version restrictions start causing previously specified versions to cause conflicts, and now I'm left debugging why my packages form a cycle of blockers when I'm not even sure why most of these packages are even being installed.

I really doubt that I would be the only person having this problem though, but haven't had the time to go look around at how other projects specify their development dockerfiles in a maintainable way. I'd be interested in any links you have. Or, maybe the answer is just for us to publish a "blessed" docker image, and just set up a regular schedule of publishing updates to pick up new compilers and library versions over time?

from foundationdb.

wwilson avatar wwilson commented on June 26, 2024

Yeah, I think an official container image is a totally reasonable solution to this problem.

FWIW, at one point we had a little script which given a list of desired packages (and optional versions) would create a temporary container, configure update channels, install the packages, then use dpkg queries to get a list of all installed packages and their versions (which necessarily constitutes a superset of the transitive closure of the dependency chain of the desired packages), and then regenerate the "apt install..." line that could be added back into the Dockerfile. So we just ran that when we had to make a change to the build environment.

I don't actually remember what that Python file was called, but grepping around in this repo I couldn't find it. Perhaps it's been lost to the mists of time. I doubt it would be that hard to rewrite.

from foundationdb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.