3 ms·
Unrelated, but one thing that's confused me, as someone who doesn't really use Docker. I don't think of a programming language as being the thing upon which I
by CaliforniaKarl 7y ago
Unrelated, but one thing that's confused me, as someone who doesn't really use Docker.
I don't think of a programming language as being the thing upon which I would base my layers of containers. My expectation, as someone coming from not-containers, would be that I should first start with a core-libraries container, _then_ a language container, and then packages on top.
Having this clarity of composition, I think, is important if I need to start bringing other stuff into the environment, particularly stuff that requires compilation, so that I know what to target it against. It also makes it easier to know when a layer needs to be upgraded, for example because of a security issue.
The downside I see is that maintainers of layers higher up in the stack would possibly have to build multiple variants of their layer. But maybe that wouldn't be too big of a problem?
- chrisseaton 7y agoCore library of what programming language, if you haven't picked a language yet?
- jlarocco 7y agoI think the OP's talking about stuff like Qt, OpenGL, BLAS/LAPACK.
- deleted 7y ago[deleted]
- emef 7y agoI'm not sure what kind of deployment you are envisioning where this makes sense. If you are running a java application, you likely want a bare bones OS + jvm of appropriate version (like the ones being discussed).
- marcinzm 7y agoThe openjdk container is based on a distribution container and publishes multiple versions for different distributions (debian, alpine, windows, slim debian, old debian version, etc.). Users then base their containers on top of an openjdk container and add their packages dependencies to their docker files. The issue here is that the language container seems to have pinned against a specific non-release version of openjdk.
- viraptor 7y ago> It also makes it easier to know when a layer needs to be upgraded, for example because of a security issue. This doesn't really apply. You rebuild when one of the dependencies needs to be updated. It didn't matter how deep it is into the stack or which position.