TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Dagger: A shell for the container age

199 点作者 gk1大约 2 个月前

24 条评论

randomtechguy大约 2 个月前
I feel like it&#x27;s getting harder to tell what dagger is _actually_ for these days.<p>At first we&#x27;d hoped it could replace jenkins - it provided an alternative way to run and debug CI pipelines - right on your machine! You could write in golang and just import what you needed. The dev direction feels more scattered now, trying to replace docker, be a new shell(?), and weirdly trying to be some kind of langchain? Doing something different doesn&#x27;t imply better. A new set of complicated CLI args is no better than what we started with (shell scripts, or jenkinsfiles to integrate docker builds). I&#x27;m a little bummed that the project has seemingly drifted (in my view) from the original mission.
评论 #43498183 未加载
评论 #43497729 未加载
评论 #43497642 未加载
a_t48大约 2 个月前
This is very cool, I often find myself composing together a mixture of Dockerfiles and shell scripts for various images (build X Dockerfile for Y arch, save it as a base, build Z Dockerfile on top of the last thing, with W args). And then having to run it different ways with different mounts, based on if you&#x27;re on a developer machine&#x2F;robot&#x2F;CI, running as a service&#x2F;adhoc&#x2F;attaching. This _looks_ like it could solve some of that messiness. I like that it can just reference the output of a build without having to muck around with tags (which are system global and can collide if you&#x27;re not careful).
评论 #43496943 未加载
评论 #43496958 未加载
评论 #43496865 未加载
评论 #43497103 未加载
ledauphin大约 2 个月前
I had missed the fact that Dagger is apparently trying to... replace? Docker for container definitions. That&#x27;s a pretty big vision.<p>I really like the ambition here; it&#x27;s very hard for me to translate this into belief that I could start using this now and actually replace some of my existing tooling.<p>At the same time, I kind of hate that they went for bash-compatible. I know everybody thinks bash is unbeatable, but at some point _surely_ we&#x27;re going to move past its awful syntax and footguns (and SQL, and can I have a pony?)...
评论 #43496900 未加载
评论 #43496975 未加载
评论 #43496937 未加载
评论 #43504183 未加载
评论 #43496848 未加载
shykes大约 2 个月前
Someone already built a web UI for composing Dagger Shell scripts in a notebook format: <a href="http:&#x2F;&#x2F;docs.runme.dev&#x2F;guide&#x2F;dagger" rel="nofollow">http:&#x2F;&#x2F;docs.runme.dev&#x2F;guide&#x2F;dagger</a><p>It&#x27;s really neat, I recommend checking it out.
评论 #43497576 未加载
jatins大约 2 个月前
Was curious what Dagger does and this is what the homepage says<p>&gt; The cross-platform composition engine<p>&gt; Build powerful software environments from modular components and simple functions. Perfect for complex builds and AI workflows.<p>This is generic to point of being useless.<p>Everything is a composition engine. Javascript is a composition engine. macOs is a composition engine.
评论 #43503458 未加载
jbverschoor大约 2 个月前
Somewhat related, self promo<p>Docker shell container - <a href="https:&#x2F;&#x2F;github.com&#x2F;jrz&#x2F;container-shell" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jrz&#x2F;container-shell</a>
评论 #43499267 未加载
mrbluecoat大约 2 个月前
Is the objective to get inside a container to do dev stuff? Reminds me of <a href="https:&#x2F;&#x2F;www.jetify.com&#x2F;devbox" rel="nofollow">https:&#x2F;&#x2F;www.jetify.com&#x2F;devbox</a> and <a href="https:&#x2F;&#x2F;flox.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;flox.dev&#x2F;</a>
remram大约 2 个月前
In clear terms, what would I do with this? What activity does it help me with? What program do I replace with it?<p>&quot;The devops operating system&quot; does what?
评论 #43500446 未加载
hamandcheese大约 2 个月前
My initial impression (looking at the examples, not actual usage) is that this feels like a weird half-way between Dockerfile and using actual code to define and compose software (i.e. like Nix). Not super appealing to me as a heavy Nix user.
elorm大约 2 个月前
Did Dagger pivot their product ? I seem to recall the main selling point was an Independent pipeline-as-code service. Looks like they’re trying to rebuild Docker now?
评论 #43497113 未加载
GONE_KLOUT大约 2 个月前
It would be better to not confront potential users with a long text about unix history, nobody has time to read that. Instead just write a few bullet points about what it actually does.<p>However, I am very happy somebody finally put the prompt on TOP of a terminal window, since years I am wondering why people like to bow their head to the bottom of the screen.<p>I guess it is the expected gesture for IT devs and admins nowadays to follow and bow your head, so this is a great help for people to understand what is the right posture in life!
imiric大约 2 个月前
&gt; We still use the shell, but it&#x27;s no longer the universal composition system it was meant to be.<p>Huh? When did that change?<p>Dagger seems interesting, but this opinion that the shell and standard Unix tools are archaic is a dubious starting principle.<p>Every now and then a project with similar ideas comes along, and whether it rejects the notion of passing unstructured data between commands, addresses the footguns and frustrations of shell scripting, or is built with a more modern and &quot;safe&quot; programming language, it ultimately never seems to catch on as much as traditional Unix shells and tooling has.<p>The reality is that these tools and the design choices made 50 years ago are timeless in nature. They&#x27;re deliberately lacking in features and don&#x27;t attach themselves to any specific tech du jour. It&#x27;s this primitive nature and the &quot;do one thing well&quot; philosophy that makes them infinitely composable. The same pipelines Unix nerds were building 50 years ago to solve problems are still useful today, which is remarkable when you consider how quickly technology moves.<p>Sure, new tools are invented all the time, and they might do things better than old ones. I use `eza` instead of `ls`; `fd` instead of `find` (mostly); `rg` instead of `grep` (mostly); `fzf` is a pretty essential addition to my workflow, and so on. But the underlying principles of these tools are still the same as the tools they&#x27;re replacing. They&#x27;re just slightly modernized and ergonomic versions of them.<p>Whether or not we need a `container` command, `from alpine`, or an entire new shell for that, is a separate topic. It could be argued that this could be accomplished with a few functions or standalone commands. Even if we do need this new tooling, that&#x27;s great, but don&#x27;t tell me that it&#x27;s meant to replace a proven set of tools and workflows[1]. When containers stop being popular, will we still need this?<p>Also, &quot;Daggerverse&quot; and &quot;modules&quot;? Great, let&#x27;s bring in the npm mentality to the shell, just what I needed.<p>[1]: Ah, they don&#x27;t, it&#x27;s meant to serve as a complement. Alright, fair enough. I&#x27;m lowering my pitchfork.
评论 #43501311 未加载
tonymet大约 2 个月前
I&#x27;d like to use this tool as a breakpoint into a container. e.g.<p><pre><code> dagger Dockerfile L4 </code></pre> and it pops open a shell at that point. Then I don&#x27;t need new syntax.
评论 #43500319 未加载
评论 #43500388 未加载
benatkin大约 2 个月前
I tried using nushell and had it as my default myshell for weeks but eventually it had too little familiarity and I settled on fish. So I’m probably not going to try this shell as my default shell. I think it’s going to be an uphill battle for them to get much adoption.<p>Maybe the sandboxing will be nice and they can provide it in a way that isn’t tied to a particular shell. However sandboxing on a shell command level is too coarse grained for some things.
评论 #43496740 未加载
cedws大约 2 个月前
Looks weird, sorry.<p>Bash pipes make intuitive sense, you’re taking the output of one process and pushing it into another. Here, the use of pipes makes little sense. Why is “from alpine” being passed into “with-exec”? What is moving between those processes?
评论 #43503369 未加载
评论 #43503515 未加载
评论 #43503856 未加载
xedeon大约 2 个月前
This reminds me of<p><a href="https:&#x2F;&#x2F;github.com&#x2F;progrium&#x2F;envy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;progrium&#x2F;envy</a><p><a href="https:&#x2F;&#x2F;vimeo.com&#x2F;131329120" rel="nofollow">https:&#x2F;&#x2F;vimeo.com&#x2F;131329120</a>
contingencies大约 2 个月前
A: Let&#x27;s do stuff with containers.<p>B: What&#x27;s a container?<p>A: It lets you execute a sequence of commands in an isolated and controlled environment that can be readily rebuilt, cloned or disposed of.<p>B: How do we do that? Using a standard procedural format such as a shell script or sequential command list?<p>A: Far too simple. Let&#x27;s pipe everything through a new and evolving middleware control stack that re-implements standard primitives like file creation but lets you introduce new bugs and edge cases in any language you choose to use, thereby ensuring the host environment also requires additional configuration! And keep that interface unstable! And definitely don&#x27;t write man pages!<p>B: TF?<p><i>Those who don&#x27;t understand Unix are condemned to reinvent it, poorly.</i> - Henry Spencer
wavemode大约 2 个月前
Kinda off topic, but this page and many other pages on dagger.io seem to be loading very large GIFs that would be much better off in a compressed format (mp4 or webm).
评论 #43496944 未加载
baalimago大约 2 个月前
Right, so they&#x27;ve re-invented the java builder pattern, but in a shell. Why not just use a Java SDK? Or go SDK with options pattern?
评论 #43506077 未加载
throwdaggeraway大约 2 个月前
Dagger is a frustrating time sink – it&#x27;s interesting for what should be boring infrastructure. I&#x27;ve wasted too many hours debugging low-level details of buildkit and dealing with leaky kernel abstractions instead of building actual products.<p>Nix, Bazel, and similar alternatives may have learning curves, but they provide clearer guardrails and more predictable outcomes without exposing so many implementation details. I deeply regret the time I spent working with Dagger.
评论 #43503526 未加载
Kinrany大约 2 个月前
How come the pipe is a method call? Does this really allow composing programs?
sleepybrett大约 2 个月前
I do all my work in containers, i&#x27;m still left asking &#x27;why?&#x27;
agambrahma大约 2 个月前
So basically nix-shell ?
评论 #43496896 未加载
la64710大约 2 个月前
When something breaks in dagger how do you troubleshoot it?
评论 #43510069 未加载