Files
komodo/docs/build.html
2026-05-11 18:45:07 -07:00

71 lines
51 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-build" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Build | Komodo</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://komo.do/img/monitor-lizard.png"><meta data-rh="true" name="twitter:image" content="https://komo.do/img/monitor-lizard.png"><meta data-rh="true" property="og:url" content="https://komo.do/docs/build"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Build | Komodo"><meta data-rh="true" name="description" content="Komodo builds Docker images by running docker build and pushing the result to a configured image registry."><meta data-rh="true" property="og:description" content="Komodo builds Docker images by running docker build and pushing the result to a configured image registry."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://komo.do/docs/build"><link data-rh="true" rel="alternate" href="https://komo.do/docs/build" hreflang="en"><link data-rh="true" rel="alternate" href="https://komo.do/docs/build" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Build","item":"https://komo.do/docs/build"}]}</script><link rel="stylesheet" href="/assets/css/styles.1906ceb0.css">
<script src="/assets/js/runtime~main.e25d46da.js" defer="defer"></script>
<script src="/assets/js/main.0eb432bc.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/komodo-512x512.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/komodo-512x512.png" alt="monitor lizard" class="themedComponent_mlkZ themedComponent--light_NVdE" width="32px"><img src="/img/komodo-512x512.png" alt="monitor lizard" class="themedComponent_mlkZ themedComponent--dark_xIcU" width="32px"></div><b class="navbar__title text--truncate">KOMODO</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/intro">Docs</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://opencollective.com/komodo" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Donate<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://docs.rs/komodo_client/latest/komodo_client" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Docs.rs<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://github.com/moghtech/komodo" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="navbar__search searchBarContainer_NW3z" dir="ltr"><input placeholder="Search" aria-label="Search" class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/komodo-512x512.png" alt="monitor lizard" class="themedComponent_mlkZ themedComponent--light_NVdE" width="32px"><img src="/img/komodo-512x512.png" alt="monitor lizard" class="themedComponent_mlkZ themedComponent--dark_xIcU" width="32px"><b>KOMODO</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/intro"><span title="What is Komodo?" class="linkLabel_WmDU">What is Komodo?</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/setup"><span title="Setup" class="categoryLinkLabel_W154">Setup</span></a><button aria-label="Expand sidebar category &#x27;Setup&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/resources"><span title="Resources" class="linkLabel_WmDU">Resources</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/deploy/compose"><span title="Deploy" class="categoryLinkLabel_W154">Deploy</span></a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/swarm"><span title="Swarm" class="linkLabel_WmDU">Swarm</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/terminals"><span title="Terminals" class="linkLabel_WmDU">Terminals</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/docs/build"><span title="Build" class="linkLabel_WmDU">Build</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/automate/procedures"><span title="Automate" class="categoryLinkLabel_W154">Automate</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/configuration/providers"><span title="Configuration" class="categoryLinkLabel_W154">Configuration</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/ecosystem"><span title="Ecosystem" class="categoryLinkLabel_W154">Ecosystem</span></a><button aria-label="Expand sidebar category &#x27;Ecosystem&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/releases/v2.0.0"><span title="Releases" class="categoryLinkLabel_W154">Releases</span></a></div></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Build</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Build</h1></header>
<p>Komodo builds Docker images by running <code>docker build</code> and pushing the result to a configured image registry.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="dockerfile-sources">Dockerfile Sources<a href="#dockerfile-sources" class="hash-link" aria-label="Direct link to Dockerfile Sources" title="Direct link to Dockerfile Sources" translate="no"></a></h2>
<p>Komodo supports three ways of providing the Dockerfile and build context:</p>
<ol>
<li class=""><strong>Write in the UI</strong> — define the Dockerfile contents directly in Komodo. Supports variable and secret interpolation.</li>
<li class=""><strong>Files on host</strong> — point to an existing Dockerfile and build context already present on the builder machine. Set <code>files_on_host = true</code> and use <code>build_path</code> / <code>dockerfile_path</code> to specify the paths.</li>
<li class=""><strong>Git repo</strong> — clone a repository containing the Dockerfile. This is the default mode. Configure <code>repo</code>, <code>branch</code>, and optionally <code>git_account</code> for private repos.</li>
</ol>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration" translate="no"></a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token table class-name" style="color:hsl(35, 99%, 36%)">build</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">name</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-app&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token table class-name" style="color:hsl(35, 99%, 36%)">build.config</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">builder</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;builder-01&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">repo</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;myorg/my-app&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">branch</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;main&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">git_account</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-user&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">image_registry</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">domain</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;ghcr.io&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">account</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-user&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">organization</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-org&quot;</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="config-fields">Config fields<a href="#config-fields" class="hash-link" aria-label="Direct link to Config fields" title="Direct link to Config fields" translate="no"></a></h3>
<table><thead><tr><th>Field</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>builder</code></td><td>The Builder resource to run the build on.</td><td></td></tr><tr><td><code>version</code></td><td>Current build version (<code>major.minor.patch</code>).</td><td><code>0.0.0</code></td></tr><tr><td><code>auto_increment_version</code></td><td>Auto-increment patch number on each build.</td><td><code>true</code></td></tr><tr><td><code>image_name</code></td><td>Alternate image name (uses build name if empty).</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>image_tag</code></td><td>Extra tag postfix, e.g. <code>aarch64</code><code>:1.2.3-aarch64</code>.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>include_latest_tag</code></td><td>Push <code>:latest</code> / <code>:latest-{image_tag}</code> tags.</td><td><code>true</code></td></tr><tr><td><code>include_version_tags</code></td><td>Push semver tags (<code>:1.2.3</code>, <code>:1.2</code>, <code>:1</code>).</td><td><code>true</code></td></tr><tr><td><code>include_commit_tag</code></td><td>Push commit hash tag (<code>:a6v8h83</code>).</td><td><code>true</code></td></tr><tr><td><code>linked_repo</code></td><td>A Komodo Repo resource to source files from.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>git_provider</code></td><td>Git provider domain.</td><td><code>github.com</code></td></tr><tr><td><code>git_https</code></td><td>Use HTTPS to clone (versus HTTP).</td><td><code>true</code></td></tr><tr><td><code>git_account</code></td><td>Git provider account for private repos.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>repo</code></td><td>Repository in <code>owner/repo</code> format.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>branch</code></td><td>Branch to clone. Webhooks only trigger on pushes to this branch.</td><td><code>main</code></td></tr><tr><td><code>commit</code></td><td>Pin to a specific commit hash.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>files_on_host</code></td><td>Source Dockerfile and build context from files already on the builder.</td><td><code>false</code></td></tr><tr><td><code>dockerfile</code></td><td>UI-defined Dockerfile contents. Supports variable/secret interpolation.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>build_path</code></td><td>Build context directory, relative to the repo root (or absolute path when <code>files_on_host</code>).</td><td><code>.</code></td></tr><tr><td><code>dockerfile_path</code></td><td>Dockerfile path, relative to the build directory.</td><td><code>Dockerfile</code></td></tr><tr><td><code>image_registry</code></td><td>Registry to push images to (domain + account + optional organization).</td><td><code>[]</code></td></tr><tr><td><code>build_args</code></td><td>Build arguments in <code>KEY=value</code> format. Visible in <code>docker history</code>.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>secret_args</code></td><td>Build secrets in <code>KEY=value</code> format. Access via <code>RUN --mount=type=secret,id=KEY</code>. Not visible in image history.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>skip_secret_interp</code></td><td>Skip secret interpolation in build_args.</td><td><code>false</code></td></tr><tr><td><code>extra_args</code></td><td>Additional flags passed to <code>docker build</code>.</td><td><code>[]</code></td></tr><tr><td><code>use_buildx</code></td><td>Use <code>docker buildx build</code> instead of <code>docker build</code>.</td><td><code>false</code></td></tr><tr><td><code>pre_build</code></td><td>Command to run after cloning but before <code>docker build</code>.</td><td></td></tr><tr><td><code>labels</code></td><td>Docker labels in <code>key=value</code> format.</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>webhook_enabled</code></td><td>Whether incoming webhooks trigger builds.</td><td><code>true</code></td></tr><tr><td><code>webhook_secret</code></td><td>Alternate webhook secret (uses default from config if empty).</td><td><code>&quot;&quot;</code></td></tr><tr><td><code>links</code></td><td>Quick links displayed in the resource header.</td><td><code>[]</code></td></tr></tbody></table>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="image-versioning-and-tagging">Image Versioning and Tagging<a href="#image-versioning-and-tagging" class="hash-link" aria-label="Direct link to Image Versioning and Tagging" title="Direct link to Image Versioning and Tagging" translate="no"></a></h2>
<p>Komodo uses a <code>major.minor.patch</code> versioning scheme. By default, each build auto-increments the patch number. You can control exactly which tags are pushed using the following options:</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="tag-types">Tag types<a href="#tag-types" class="hash-link" aria-label="Direct link to Tag types" title="Direct link to Tag types" translate="no"></a></h3>
<table><thead><tr><th>Option</th><th>Tags produced</th><th>Example</th></tr></thead><tbody><tr><td><code>include_version_tags</code></td><td>Full semver, minor, and major</td><td><code>:1.2.3</code>, <code>:1.2</code>, <code>:1</code></td></tr><tr><td><code>include_latest_tag</code></td><td>Latest tag</td><td><code>:latest</code></td></tr><tr><td><code>include_commit_tag</code></td><td>Short commit hash</td><td><code>:a6v8h83</code></td></tr></tbody></table>
<p>All three are enabled by default. Disable any combination to control which tags are pushed.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="image-tag-postfix">Image tag postfix<a href="#image-tag-postfix" class="hash-link" aria-label="Direct link to Image tag postfix" title="Direct link to Image tag postfix" translate="no"></a></h3>
<p>The <code>image_tag</code> field appends a postfix to all generated tags. This is useful for multi-platform or variant builds:</p>
<table><thead><tr><th><code>image_tag</code></th><th>Version tag</th><th>Latest tag</th><th>Commit tag</th></tr></thead><tbody><tr><td><em>(empty)</em></td><td><code>:1.2.3</code></td><td><code>:latest</code></td><td><code>:a6v8h83</code></td></tr><tr><td><code>aarch64</code></td><td><code>:1.2.3-aarch64</code></td><td><code>:latest-aarch64</code></td><td><code>:a6v8h83-aarch64</code></td></tr></tbody></table>
<p>When <code>image_tag</code> is set, an additional pure tag is also pushed: <code>:aarch64</code>.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="custom-image-name">Custom image name<a href="#custom-image-name" class="hash-link" aria-label="Direct link to Custom image name" title="Direct link to Custom image name" translate="no"></a></h3>
<p>By default, the build&#x27;s name is used as the image name. Set <code>image_name</code> to override this, e.g. if the build name doesn&#x27;t match the desired image name on the registry.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="manual-versioning">Manual versioning<a href="#manual-versioning" class="hash-link" aria-label="Direct link to Manual versioning" title="Direct link to Manual versioning" translate="no"></a></h3>
<p>Set <code>auto_increment_version = false</code> to manage the <code>version</code> field yourself. The major and minor versions are always set manually — only the patch auto-increments.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="image-registry">Image Registry<a href="#image-registry" class="hash-link" aria-label="Direct link to Image Registry" title="Direct link to Image Registry" translate="no"></a></h2>
<p>Komodo supports pushing to any Docker-compatible registry. Configure accounts in <a class="" href="/docs/configuration/providers">Providers</a>.</p>
<p>A build can push to <strong>multiple registries</strong> simultaneously. The <code>image_registry</code> field accepts a list — each entry specifies a domain, account, and optional organization:</p>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token table class-name" style="color:hsl(35, 99%, 36%)">build.config</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">image_registry</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">domain</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;ghcr.io&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">account</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-user&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">organization</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-org&quot;</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">{</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">domain</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;docker.io&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"> </span><span class="token key property" style="color:hsl(5, 74%, 59%)">account</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;my-user&quot;</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">}</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><br></span></code></pre></div></div>
<p>The first registry in the list is used by default when a Deployment is connected to the Build.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_BuS1"><p>GitHub access tokens must have the <code>write:packages</code> permission to push to GHCR.
See the <a href="https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-with-a-personal-access-token-classic" target="_blank" rel="noopener noreferrer" class="">GitHub docs</a>.</p></div></div>
<p>When a Build is connected to a Deployment, the Deployment inherits the Build&#x27;s registry credentials by default. If the builder&#x27;s account isn&#x27;t available to the Deployment&#x27;s server, select a different account in the Deployment config.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="multi-platform-builds-buildx">Multi-platform builds (Buildx)<a href="#multi-platform-builds-buildx" class="hash-link" aria-label="Direct link to Multi-platform builds (Buildx)" title="Direct link to Multi-platform builds (Buildx)" translate="no"></a></h2>
<p>To build for multiple platforms (e.g. ARM + x86), set up Docker Buildx on the builder:</p>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token function" style="color:hsl(221, 87%, 60%)">docker</span><span class="token plain"> buildx create </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">--name</span><span class="token plain"> builder </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">--use</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">--bootstrap</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token function" style="color:hsl(221, 87%, 60%)">docker</span><span class="token plain"> buildx </span><span class="token function" style="color:hsl(221, 87%, 60%)">install</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)"># makes buildx the default for `docker build`</span><br></span></code></pre></div></div>
<p>Then pass the target platforms in the Build&#x27;s <strong>Extra Args</strong>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">--platform linux/amd64,linux/arm64</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="builders">Builders<a href="#builders" class="hash-link" aria-label="Direct link to Builders" title="Direct link to Builders" translate="no"></a></h2>
<p>A <code>Builder</code> resource defines <strong>where</strong> builds run. Any Server connected to Komodo can be used as a builder, but building on production servers is not recommended.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="server-builder">Server builder<a href="#server-builder" class="hash-link" aria-label="Direct link to Server builder" title="Direct link to Server builder" translate="no"></a></h3>
<p>Point the builder at an existing Server running the Periphery agent.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="aws-ec2-builder">AWS EC2 builder<a href="#aws-ec2-builder" class="hash-link" aria-label="Direct link to AWS EC2 builder" title="Direct link to AWS EC2 builder" translate="no"></a></h3>
<p>Komodo can launch a temporary EC2 instance for each build and shut it down when finished.</p>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token table class-name" style="color:hsl(35, 99%, 36%)">builder</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">name</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;builder-01&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token table class-name" style="color:hsl(35, 99%, 36%)">builder.config</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">type</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;Aws&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.region</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;us-east-2&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.instance_type</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;c5.2xlarge&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.ami_id</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;ami-xxxxxxxxxxxxxxxxxx&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.subnet_id</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;subnet-xxxxxxxxxxxxxxxxxx&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.key_pair_name</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;ssh-key&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.assign_public_ip</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token boolean" style="color:hsl(35, 99%, 36%)">true</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)">## Required for outbound internet access unless you have network gateway.</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.use_public_ip</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token boolean" style="color:hsl(35, 99%, 36%)">true</span><span class="token plain"> </span><span class="token comment" style="color:hsl(230, 4%, 64%)">## Setting &#x27;false&#x27; uses the private IP (when Komodo Core is in same subnet).</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.security_group_ids</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">[</span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;sg-xxxxxxxxxxxxxxxxxx&quot;</span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token key property" style="color:hsl(5, 74%, 59%)">params.user_data</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(119, 34%, 47%)">=</span><span class="token plain"> </span><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;&quot;&quot;</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">#!/bin/bash</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">curl -sSL \</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py | \</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)"> HOME=/root python3 - --version=v2.X.X</span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token string" style="color:hsl(119, 34%, 47%)">&quot;&quot;&quot;</span><br></span></code></pre></div></div>
<p>To create the AMI:</p>
<ol>
<li class="">Launch an EC2 instance and install Docker:<!-- -->
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token function" style="color:hsl(221, 87%, 60%)">apt</span><span class="token plain"> update </span><span class="token operator" style="color:hsl(221, 87%, 60%)">&amp;&amp;</span><span class="token plain"> </span><span class="token function" style="color:hsl(221, 87%, 60%)">apt</span><span class="token plain"> upgrade </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-y</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain"></span><span class="token function" style="color:hsl(221, 87%, 60%)">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:hsl(221, 87%, 60%)">-fsSL</span><span class="token plain"> https://get.docker.com </span><span class="token operator" style="color:hsl(221, 87%, 60%)">|</span><span class="token plain"> </span><span class="token function" style="color:hsl(221, 87%, 60%)">sh</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(230, 8%, 24%)"><span class="token plain">systemctl </span><span class="token builtin class-name" style="color:hsl(35, 99%, 36%)">enable</span><span class="token plain"> docker.service containerd.service</span><br></span></code></pre></div></div>
</li>
<li class="">Create an AMI from the instance in the AWS console.</li>
<li class="">Create a security group and ensure it allows inbound access on port <strong>8120</strong> from Komodo Core.</li>
</ol>
<p>The instance <code>user_data</code> will install the Periphery agent as the instance starts up,
and Komodo Core will then connect and build the image.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/moghtech/komodo/tree/main/docsite/docs/build.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/terminals"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Terminals</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/automate/procedures"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Procedures and Actions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#dockerfile-sources" class="table-of-contents__link toc-highlight">Dockerfile Sources</a></li><li><a href="#configuration" class="table-of-contents__link toc-highlight">Configuration</a><ul><li><a href="#config-fields" class="table-of-contents__link toc-highlight">Config fields</a></li></ul></li><li><a href="#image-versioning-and-tagging" class="table-of-contents__link toc-highlight">Image Versioning and Tagging</a><ul><li><a href="#tag-types" class="table-of-contents__link toc-highlight">Tag types</a></li><li><a href="#image-tag-postfix" class="table-of-contents__link toc-highlight">Image tag postfix</a></li><li><a href="#custom-image-name" class="table-of-contents__link toc-highlight">Custom image name</a></li><li><a href="#manual-versioning" class="table-of-contents__link toc-highlight">Manual versioning</a></li></ul></li><li><a href="#image-registry" class="table-of-contents__link toc-highlight">Image Registry</a></li><li><a href="#multi-platform-builds-buildx" class="table-of-contents__link toc-highlight">Multi-platform builds (Buildx)</a></li><li><a href="#builders" class="table-of-contents__link toc-highlight">Builders</a><ul><li><a href="#server-builder" class="table-of-contents__link toc-highlight">Server builder</a></li><li><a href="#aws-ec2-builder" class="table-of-contents__link toc-highlight">AWS EC2 builder</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/intro">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/setup">Setup</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/resources">Resources</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Ecosystem</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/ecosystem/cli">CLI</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/ecosystem/api">API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/ecosystem/community">Community</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Project</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/moghtech/komodo" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://opencollective.com/komodo" target="_blank" rel="noopener noreferrer" class="footer__link-item">Donate<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://demo.komo.do" target="_blank" rel="noopener noreferrer" class="footer__link-item">Demo<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">© 2026 Mogh Technologies Inc. Licensed under GPL-3.0</div></div></div></footer></div>
</body>
</html>