Modus: A language for building Docker/OCI container images
github.com
github.com
I've actually never even heard this particular complaint. What exactly have you heard about problems with nix "at scale", or are you just exaggerating what a "learning curve" is again?
I think the point is, what trade-offs are you paying such that you'd be better off using Modus, but not a Dockerfile or a Nix expression. -- If you want to benefit from nicer programmatic building of Dockerfiles, and can afford the risk of adopting some non-mainstream technology, you're probably better off trying Nix than this.
I think in terms of adopting in a team environment.. I don't think it's a good idea for a company to adopt high-cost-high-reward tools at a place without at least 3 developers who know the technology well. (You don't want just 1 dev knowing it; and you want slack in case 1 quits or whatever).
You use Nix the language to build Docker images and avoid the NixOS CLI tools/runtime?
Nix the language.
NixOS the Linux built with Nix as it's default package manager that uses the Nix language.
Or is that Nix the package manager? Does Nix the package manager compile Nix the language images?
No
> can you build OCI images using Nix from Mac/Windows/other non NixOS Linux?
Non NixOS Unix, not Windows yet, unless you use WSL or a VM
Modus is not really an alternative to Nix as a package manager, but to Nix as a language. It has several advantages, for example, it is non-Turing-complete, so there can not be infinite loops, and its definitions are more concise thanks to its logic programming foundations.
Saying that, I agree that an integration with package managers can be beneficial for reproducibility. This is the area of our current research.
I'll take a learning curve with actual reproducability any day anytime. Add this to the "git is hard" list of complaints. Bending over 8hrs a day and line cooking is harder.
Do you know how many stupid "you're using docker wrong if you don't do this quirky trick!!" articles I've read or written myself over the last 5 years? And still virtually no one bothers to follow all of them because they're virtually impossible to achieve with conventional package managers? Just the zealots noticing this?
(you can kind of make the caching happen with buildkit but it's annoying to set up)
I'm not sure any layer DAG tool will solve the packaging issue because dags are inherently ordered right?
cloud providers and users are probably aligned here in terms of goals: faster builds, smaller incremental deploys