www

My personal website(s)
Log | Files | Refs

no-need-for-dockerfile.html (4274B)


      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4 <!-- Sep 03, 2024 -->
      5 <meta charset="utf-8" />
      6 <meta name="viewport" content="width=device-width, initial-scale=1" />
      7 <title>You may not need a =Dockerfile= 🐳</title>
      8 <meta name="author" content="Vincent Demeester" />
      9 <meta name="keywords" content="post" />
     10 <meta name="generator" content="Org Mode" />
     11 <link rel="stylesheet" type="text/css" href="/css/2022.css" />
     12 <link rel="stylesheet" type="text/css" href="/css/syntax.css" />
     13 <link rel='icon' type='image/x-icon' href='/images/favicon.ico'/>
     14 <meta name='viewport' content='width=device-width, initial-scale=1'>
     15 </head>
     16 <body>
     17 <main id="content" class="content">
     18 <header>
     19 <h1 class="title">You may not need a <code>Dockerfile</code> 🐳</h1>
     20 <p class="subtitle" role="doc-subtitle">Explore ways to create images without the <code>Dockerfile</code> generic approach</p>
     21 </header><p>
     22 Building a &ldquo;docker image&rdquo;, or more appropriately an OCI image, is usually associated with
     23 the <code>Dockerfile</code> format. Although it is one of the most <i>generic</i> way to build an OCI
     24 image, it is definitely not the only way, nor the best way, depending on your use case.
     25 <b>And</b> there is a decent amount of ways to create your image. Let&rsquo;s try to explore some of
     26 them.
     27 </p>
     28 
     29 <p>
     30 <a href="https://imjasonh.com/">Jason</a> write an amazing article around this : <a href="https://github.com/imjasonh/ImJasonH/tree/main/articles/moving-and-building-images">Moving and Building Container Images, The Right Way</a>.
     31 </p>
     32 <section id="outline-container-Don%27t%20get%20me%20wrong%2C%20I%20used%20to%20love%20%3DDockerfile%3D%20%F0%9F%99%83" class="outline-2">
     33 <h2 id="Don%27t%20get%20me%20wrong%2C%20I%20used%20to%20love%20%3DDockerfile%3D%20%F0%9F%99%83">Don&rsquo;t get me wrong, I used to love <code>Dockerfile</code> 🙃</h2>
     34 <div class="outline-text-2" id="text-Don%27t%20get%20me%20wrong%2C%20I%20used%20to%20love%20%3DDockerfile%3D%20%F0%9F%99%83">
     35 <p>
     36 I <b>love</b> <code>Dockerfile</code>. They have been extremely useful for the container ecosystem. The
     37 recent evolutions, backed by <a href="https://github.com/moby/buildkit"><code>buildkit</code></a> are also very good. But they do come with a bit of
     38 baggages:
     39 </p>
     40 
     41 <ul class="org-ul">
     42 <li>They do not <i>allow</i> (or <i>enable</i>) to write reproducible builds. The timestamps, the
     43 <code>RUN</code> with &ldquo;random&rdquo; commands is getting in the way.</li>
     44 <li>They bring a very <b>big assumption</b>, each and every <code>RUN</code> is running in a container. Of
     45 course there is tools (as we may, or may not see) that do build <code>Dockerfile</code> without
     46 containers, but they are a bit limited (because of that assumption).</li>
     47 </ul>
     48 </div>
     49 </section>
     50 <section id="outline-container-Questions%20to%20ask%20yourself" class="outline-2">
     51 <h2 id="Questions%20to%20ask%20yourself">Questions to ask yourself</h2>
     52 <div class="outline-text-2" id="text-Questions%20to%20ask%20yourself">
     53 <p>
     54 In order to decide what to use to build a container image, there is a couple of questions
     55 to answer. Your answers will help you choose what tool to use.
     56 </p>
     57 
     58 <ul class="org-ul">
     59 <li>Is &ldquo;reproductible builds&rdquo; something important to you ?</li>
     60 <li>Is your CI running in containers ?</li>
     61 <li>Is your developement environment running in containers ?</li>
     62 <li>Do you care about running things as root ?</li>
     63 <li>Do you care about running things as <b>privileged</b> (aka giving the keys to escape the
     64 containers to the process running in the container) ?</li>
     65 </ul>
     66 </div>
     67 </section>
     68 </main>
     69 <footer id="postamble" class="status">
     70 <footer>
     71      <small><a href="/" rel="history">Index</a> • <a href="/sitemap.html">Sitemap</a> • <a href="https://dl.sbr.pm/">Files</a></small><br/>
     72      <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/>
     73      <small class='copyright'>
     74       Content and design by Vincent Demeester
     75       (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>)
     76     </small><br />
     77 </footer>
     78 </footer>
     79 </body>
     80 </html>