<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Earthly - Tag - vo.rs</title><link>https://vo.rs/tags/earthly/</link><description>Earthly - Tag - vo.rs</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 06 Apr 2026 08:00:00 +0000</lastBuildDate><atom:link href="https://vo.rs/tags/earthly/" rel="self" type="application/rss+xml"/><item><title>Earthly: Containerized Build Pipelines That Combine Dockerfile and Makefile</title><link>https://vo.rs/story/earthly-containerized-build-pipelines-that-combine-dockerfile-and-makefile/</link><description>&lt;p&gt;Every project I&amp;rsquo;ve maintained eventually grows a &lt;code&gt;Makefile&lt;/code&gt; full of &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;lint&lt;/code&gt;, and &lt;code&gt;release&lt;/code&gt; targets that work beautifully on my machine and nowhere else. The targets assume a particular toolchain, a particular OS, particular environment variables. Then CI does something subtly different, and you maintain two parallel descriptions of the same build forever. Earthly is the tool that finally made me delete that duplication. It&amp;rsquo;s what you get if a &lt;code&gt;Makefile&lt;/code&gt; and a &lt;code&gt;Dockerfile&lt;/code&gt; had a child who insisted everything run in a container.&lt;/p&gt;</description><pubDate>Mon, 06 Apr 2026 08:00:00 +0000</pubDate></item></channel></rss>