index.html 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <link rel="prev" href="../env/">
  7. <link rel="next" href="../summarizers/">
  8. <link rel="icon" href="../../assets/images/favicon.png">
  9. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.40">
  10. <title>Docker images - SWE-agent documentation</title>
  11. <link rel="stylesheet" href="../../assets/stylesheets/main.8c3ca2c6.min.css">
  12. <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
  13. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  14. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  15. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  16. <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
  17. <link rel="stylesheet" href="../../assets/custom.css">
  18. <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  19. <link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
  20. html.glightbox-open { overflow: initial; height: 100%; }
  21. .gslide-title { margin-top: 0px; user-select: text; }
  22. .gslide-desc { color: #666; user-select: text; }
  23. .gslide-image img { background: white; }
  24. .gscrollbar-fixer { padding-right: 15px; }
  25. .gdesc-inner { font-size: 0.75rem; }
  26. body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
  27. body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
  28. body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}</style> <script src="../../assets/javascripts/glightbox.min.js"></script></head>
  29. <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
  30. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  31. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  32. <label class="md-overlay" for="__drawer"></label>
  33. <div data-md-component="skip">
  34. <a href="#build-your-own-agent-docker-image" class="md-skip">
  35. Skip to content
  36. </a>
  37. </div>
  38. <div data-md-component="announce">
  39. <aside class="md-banner">
  40. <div class="md-banner__inner md-grid md-typeset">
  41. <button class="md-banner__button md-icon" aria-label="Don't show this again">
  42. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  43. </button>
  44. <!-- This link won't work in local preview -->
  45. <a href="SWE-agent/background#enigma" class="clickable-banner">
  46. <div>
  47. News: SWE-agent <span class="enigma">EniGMA</span> solves cybersecurity and CTF challanges to achieve <span class="enigma">3x improvement over previous SOTA!</span>
  48. </div>
  49. </a>
  50. </div>
  51. <script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
  52. </aside>
  53. </div>
  54. <header class="md-header md-header--shadow" data-md-component="header">
  55. <nav class="md-header__inner md-grid" aria-label="Header">
  56. <a href="../.." title="SWE-agent documentation" class="md-header__button md-logo" aria-label="SWE-agent documentation" data-md-component="logo">
  57. <img src="../../assets/swe-agent.svg" alt="logo">
  58. </a>
  59. <label class="md-header__button md-icon" for="__drawer">
  60. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  61. </label>
  62. <div class="md-header__title" data-md-component="header-title">
  63. <div class="md-header__ellipsis">
  64. <div class="md-header__topic">
  65. <span class="md-ellipsis">
  66. SWE-agent documentation
  67. </span>
  68. </div>
  69. <div class="md-header__topic" data-md-component="header-topic">
  70. <span class="md-ellipsis">
  71. Docker images
  72. </span>
  73. </div>
  74. </div>
  75. </div>
  76. <form class="md-header__option" data-md-component="palette">
  77. <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
  78. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
  79. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
  80. </label>
  81. <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="deep-orange" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
  82. <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
  83. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
  84. </label>
  85. <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="deep-orange" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
  86. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
  87. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
  88. </label>
  89. </form>
  90. <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
  91. <label class="md-header__button md-icon" for="__search">
  92. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  93. </label>
  94. <div class="md-search" data-md-component="search" role="dialog">
  95. <label class="md-search__overlay" for="__search"></label>
  96. <div class="md-search__inner" role="search">
  97. <form class="md-search__form" name="search">
  98. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  99. <label class="md-search__icon md-icon" for="__search">
  100. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  101. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  102. </label>
  103. <nav class="md-search__options" aria-label="Search">
  104. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  105. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  106. </button>
  107. </nav>
  108. </form>
  109. <div class="md-search__output">
  110. <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
  111. <div class="md-search-result" data-md-component="search-result">
  112. <div class="md-search-result__meta">
  113. Initializing search
  114. </div>
  115. <ol class="md-search-result__list" role="presentation"></ol>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="md-header__source">
  122. <a href="https://github.com/princeton-nlp/SWE-agent" title="Go to repository" class="md-source" data-md-component="source">
  123. <div class="md-source__icon md-icon">
  124. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
  125. </div>
  126. <div class="md-source__repository">
  127. princeton-nlp/SWE-agent
  128. </div>
  129. </a>
  130. </div>
  131. </nav>
  132. </header>
  133. <div class="md-container" data-md-component="container">
  134. <main class="md-main" data-md-component="main">
  135. <div class="md-main__inner md-grid">
  136. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  137. <div class="md-sidebar__scrollwrap">
  138. <div class="md-sidebar__inner">
  139. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  140. <label class="md-nav__title" for="__drawer">
  141. <a href="../.." title="SWE-agent documentation" class="md-nav__button md-logo" aria-label="SWE-agent documentation" data-md-component="logo">
  142. <img src="../../assets/swe-agent.svg" alt="logo">
  143. </a>
  144. SWE-agent documentation
  145. </label>
  146. <div class="md-nav__source">
  147. <a href="https://github.com/princeton-nlp/SWE-agent" title="Go to repository" class="md-source" data-md-component="source">
  148. <div class="md-source__icon md-icon">
  149. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
  150. </div>
  151. <div class="md-source__repository">
  152. princeton-nlp/SWE-agent
  153. </div>
  154. </a>
  155. </div>
  156. <ul class="md-nav__list" data-md-scrollfix>
  157. <li class="md-nav__item">
  158. <a href="../.." class="md-nav__link">
  159. <span class="md-ellipsis">
  160. Home
  161. </span>
  162. </a>
  163. </li>
  164. <li class="md-nav__item md-nav__item--nested">
  165. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
  166. <div class="md-nav__link md-nav__container">
  167. <a href="../../background/" class="md-nav__link ">
  168. <span class="md-ellipsis">
  169. Project Overview
  170. </span>
  171. </a>
  172. <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
  173. <span class="md-nav__icon md-icon"></span>
  174. </label>
  175. </div>
  176. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
  177. <label class="md-nav__title" for="__nav_2">
  178. <span class="md-nav__icon md-icon"></span>
  179. Project Overview
  180. </label>
  181. <ul class="md-nav__list" data-md-scrollfix>
  182. <li class="md-nav__item">
  183. <a href="../../background/aci/" class="md-nav__link">
  184. <span class="md-ellipsis">
  185. Agent-Computer Interface
  186. </span>
  187. </a>
  188. </li>
  189. <li class="md-nav__item">
  190. <a href="../../background/iat/" class="md-nav__link">
  191. <span class="md-ellipsis">
  192. Interactive Agent Tools
  193. </span>
  194. </a>
  195. </li>
  196. <li class="md-nav__item">
  197. <a href="../../background/architecture/" class="md-nav__link">
  198. <span class="md-ellipsis">
  199. Architecture
  200. </span>
  201. </a>
  202. </li>
  203. </ul>
  204. </nav>
  205. </li>
  206. <li class="md-nav__item md-nav__item--nested">
  207. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
  208. <div class="md-nav__link md-nav__container">
  209. <a href="../../installation/" class="md-nav__link ">
  210. <span class="md-ellipsis">
  211. Installation
  212. </span>
  213. </a>
  214. <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
  215. <span class="md-nav__icon md-icon"></span>
  216. </label>
  217. </div>
  218. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
  219. <label class="md-nav__title" for="__nav_3">
  220. <span class="md-nav__icon md-icon"></span>
  221. Installation
  222. </label>
  223. <ul class="md-nav__list" data-md-scrollfix>
  224. <li class="md-nav__item">
  225. <a href="../../installation/codespaces/" class="md-nav__link">
  226. <span class="md-ellipsis">
  227. Use in-browser
  228. </span>
  229. </a>
  230. </li>
  231. <li class="md-nav__item">
  232. <a href="../../installation/source/" class="md-nav__link">
  233. <span class="md-ellipsis">
  234. Install from source
  235. </span>
  236. </a>
  237. </li>
  238. <li class="md-nav__item">
  239. <a href="../../installation/docker/" class="md-nav__link">
  240. <span class="md-ellipsis">
  241. Run with docker
  242. </span>
  243. </a>
  244. </li>
  245. <li class="md-nav__item">
  246. <a href="../../installation/keys/" class="md-nav__link">
  247. <span class="md-ellipsis">
  248. API keys
  249. </span>
  250. </a>
  251. </li>
  252. <li class="md-nav__item">
  253. <a href="../../installation/tips/" class="md-nav__link">
  254. <span class="md-ellipsis">
  255. Installation tips
  256. </span>
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="../../installation/changelog/" class="md-nav__link">
  261. <span class="md-ellipsis">
  262. Changelog
  263. </span>
  264. </a>
  265. </li>
  266. </ul>
  267. </nav>
  268. </li>
  269. <li class="md-nav__item md-nav__item--nested">
  270. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
  271. <div class="md-nav__link md-nav__container">
  272. <a href="../../usage/" class="md-nav__link ">
  273. <span class="md-ellipsis">
  274. Usage
  275. </span>
  276. </a>
  277. <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
  278. <span class="md-nav__icon md-icon"></span>
  279. </label>
  280. </div>
  281. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
  282. <label class="md-nav__title" for="__nav_4">
  283. <span class="md-nav__icon md-icon"></span>
  284. Usage
  285. </label>
  286. <ul class="md-nav__list" data-md-scrollfix>
  287. <li class="md-nav__item">
  288. <a href="../../usage/cl_tutorial/" class="md-nav__link">
  289. <span class="md-ellipsis">
  290. Command line usage
  291. </span>
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="../../usage/enigma/" class="md-nav__link">
  296. <span class="md-ellipsis">
  297. EnIGMA usage
  298. </span>
  299. </a>
  300. </li>
  301. <li class="md-nav__item">
  302. <a href="../../usage/coding_challenges/" class="md-nav__link">
  303. <span class="md-ellipsis">
  304. Solving coding challenges
  305. </span>
  306. </a>
  307. </li>
  308. <li class="md-nav__item">
  309. <a href="../../usage/web_ui/" class="md-nav__link">
  310. <span class="md-ellipsis">
  311. Using the web UI
  312. </span>
  313. </a>
  314. </li>
  315. <li class="md-nav__item">
  316. <a href="../../usage/trajectories/" class="md-nav__link">
  317. <span class="md-ellipsis">
  318. Trajectories
  319. </span>
  320. </a>
  321. </li>
  322. <li class="md-nav__item">
  323. <a href="../../usage/inspector/" class="md-nav__link">
  324. <span class="md-ellipsis">
  325. Trajectory inspector
  326. </span>
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="../../usage/usage_faq/" class="md-nav__link">
  331. <span class="md-ellipsis">
  332. FAQ
  333. </span>
  334. </a>
  335. </li>
  336. <li class="md-nav__item">
  337. <a href="../../usage/benchmarking/" class="md-nav__link">
  338. <span class="md-ellipsis">
  339. Benchmarking
  340. </span>
  341. </a>
  342. </li>
  343. </ul>
  344. </nav>
  345. </li>
  346. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  347. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
  348. <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
  349. <span class="md-ellipsis">
  350. Configuration
  351. </span>
  352. <span class="md-nav__icon md-icon"></span>
  353. </label>
  354. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
  355. <label class="md-nav__title" for="__nav_5">
  356. <span class="md-nav__icon md-icon"></span>
  357. Configuration
  358. </label>
  359. <ul class="md-nav__list" data-md-scrollfix>
  360. <li class="md-nav__item">
  361. <a href="../config/" class="md-nav__link">
  362. <span class="md-ellipsis">
  363. Config files
  364. </span>
  365. </a>
  366. </li>
  367. <li class="md-nav__item">
  368. <a href="../commands/" class="md-nav__link">
  369. <span class="md-ellipsis">
  370. Command definitions
  371. </span>
  372. </a>
  373. </li>
  374. <li class="md-nav__item">
  375. <a href="../demonstrations/" class="md-nav__link">
  376. <span class="md-ellipsis">
  377. Demonstrations
  378. </span>
  379. </a>
  380. </li>
  381. <li class="md-nav__item">
  382. <a href="../env/" class="md-nav__link">
  383. <span class="md-ellipsis">
  384. Environment variables
  385. </span>
  386. </a>
  387. </li>
  388. <li class="md-nav__item md-nav__item--active">
  389. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  390. <a href="./" class="md-nav__link md-nav__link--active">
  391. <span class="md-ellipsis">
  392. Docker images
  393. </span>
  394. </a>
  395. </li>
  396. <li class="md-nav__item">
  397. <a href="../summarizers/" class="md-nav__link">
  398. <span class="md-ellipsis">
  399. Summarizers
  400. </span>
  401. </a>
  402. </li>
  403. </ul>
  404. </nav>
  405. </li>
  406. <li class="md-nav__item md-nav__item--nested">
  407. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
  408. <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
  409. <span class="md-ellipsis">
  410. Development
  411. </span>
  412. <span class="md-nav__icon md-icon"></span>
  413. </label>
  414. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
  415. <label class="md-nav__title" for="__nav_6">
  416. <span class="md-nav__icon md-icon"></span>
  417. Development
  418. </label>
  419. <ul class="md-nav__list" data-md-scrollfix>
  420. <li class="md-nav__item">
  421. <a href="../../dev/contribute/" class="md-nav__link">
  422. <span class="md-ellipsis">
  423. Contribution guide
  424. </span>
  425. </a>
  426. </li>
  427. <li class="md-nav__item">
  428. <a href="../../dev/formatting_conflicts/" class="md-nav__link">
  429. <span class="md-ellipsis">
  430. Formatting conflicts
  431. </span>
  432. </a>
  433. </li>
  434. </ul>
  435. </nav>
  436. </li>
  437. <li class="md-nav__item md-nav__item--nested">
  438. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
  439. <div class="md-nav__link md-nav__container">
  440. <a href="../../reference/" class="md-nav__link ">
  441. <span class="md-ellipsis">
  442. Reference
  443. </span>
  444. </a>
  445. <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
  446. <span class="md-nav__icon md-icon"></span>
  447. </label>
  448. </div>
  449. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
  450. <label class="md-nav__title" for="__nav_7">
  451. <span class="md-nav__icon md-icon"></span>
  452. Reference
  453. </label>
  454. <ul class="md-nav__list" data-md-scrollfix>
  455. <li class="md-nav__item">
  456. <a href="../../reference/agent/" class="md-nav__link">
  457. <span class="md-ellipsis">
  458. Agent
  459. </span>
  460. </a>
  461. </li>
  462. <li class="md-nav__item">
  463. <a href="../../reference/models/" class="md-nav__link">
  464. <span class="md-ellipsis">
  465. Models
  466. </span>
  467. </a>
  468. </li>
  469. <li class="md-nav__item">
  470. <a href="../../reference/env/" class="md-nav__link">
  471. <span class="md-ellipsis">
  472. Environment
  473. </span>
  474. </a>
  475. </li>
  476. <li class="md-nav__item">
  477. <a href="../../reference/env_utils/" class="md-nav__link">
  478. <span class="md-ellipsis">
  479. Environment utils
  480. </span>
  481. </a>
  482. </li>
  483. </ul>
  484. </nav>
  485. </li>
  486. <li class="md-nav__item">
  487. <a href="../../faq/" class="md-nav__link">
  488. <span class="md-ellipsis">
  489. FAQ
  490. </span>
  491. </a>
  492. </li>
  493. </ul>
  494. </nav>
  495. </div>
  496. </div>
  497. </div>
  498. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  499. <div class="md-sidebar__scrollwrap">
  500. <div class="md-sidebar__inner">
  501. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  502. </nav>
  503. </div>
  504. </div>
  505. </div>
  506. <div class="md-content" data-md-component="content">
  507. <article class="md-content__inner md-typeset">
  508. <a href="https://github.com/princeton-nlp/SWE-agent/edit/main/docs/config/docker.md" title="Edit this page" class="md-content__button md-icon">
  509. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
  510. </a>
  511. <h1 id="build-your-own-agent-docker-image">Build your own agent Docker image</h1>
  512. <p>This section is about modifying the Docker image in which we run the commands suggested by the agent.</p>
  513. <p>There are two reasons to build your own Docker image</p>
  514. <ol>
  515. <li>You need a very specific environment to install your package (anything that you cannot simply install inside of a conda environment)</li>
  516. <li>You want to pre-install your package for <a href="../../usage/cl_tutorial/#speedup">speedup</a>.</li>
  517. </ol>
  518. <p>There are three steps involved:</p>
  519. <ol>
  520. <li>Modify the <a href="https://github.com/princeton-nlp/SWE-agent/blob/main/docker/swe.Dockerfile"><code>swe.Dockerfile</code> Dockerfile</a> (also shown below).
  521. We provide some extended explanation of the Dockerfile <a href="https://github.com/princeton-nlp/SWE-agent/blob/main/docker/README.md">here</a>.</li>
  522. <li>Build the image. One way is to simply run <code>./setup.sh</code>. Alternatively, especially if you want to change the default tag (<code>sweagent/swe-agent:latest</code>), run
  523. <div class="highlight"><pre><span></span><code>docker<span class="w"> </span>build<span class="w"> </span>-t<span class="w"> </span><span class="s2">&quot;YOUR TAG HERE&quot;</span><span class="w"> </span>-f<span class="w"> </span>docker/swe.Dockerfile<span class="w"> </span><span class="se">\</span>
  524. <span class="w"> </span>--build-arg<span class="w"> </span><span class="nv">TARGETARCH</span><span class="o">=</span><span class="k">$(</span>uname<span class="w"> </span>-m<span class="k">)</span><span class="w"> </span>.
  525. </code></pre></div></li>
  526. <li>Make sure you use the new image by passing the <code>--image_name</code> flag to <code>run.py</code>.</li>
  527. </ol>
  528. <p>Default Dockerfile:</p>
  529. <div class="highlight"><pre><span></span><code><span class="k">FROM</span><span class="w"> </span><span class="s">ubuntu:jammy</span>
  530. <span class="k">ARG</span><span class="w"> </span>TARGETARCH
  531. <span class="c"># Install third party tools</span>
  532. <span class="k">RUN</span><span class="w"> </span>apt-get<span class="w"> </span>update<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="se">\</span>
  533. <span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>bash<span class="w"> </span>gcc<span class="w"> </span>git<span class="w"> </span>jq<span class="w"> </span>wget<span class="w"> </span>g++<span class="w"> </span>make<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="se">\</span>
  534. <span class="w"> </span>apt-get<span class="w"> </span>clean<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="se">\</span>
  535. <span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span>/var/lib/apt/lists/*
  536. <span class="c"># Initialize git</span>
  537. <span class="k">RUN</span><span class="w"> </span>git<span class="w"> </span>config<span class="w"> </span>--global<span class="w"> </span>user.email<span class="w"> </span><span class="s2">&quot;sweagent@pnlp.org&quot;</span>
  538. <span class="k">RUN</span><span class="w"> </span>git<span class="w"> </span>config<span class="w"> </span>--global<span class="w"> </span>user.name<span class="w"> </span><span class="s2">&quot;sweagent&quot;</span>
  539. <span class="c"># Environment variables</span>
  540. <span class="k">ENV</span><span class="w"> </span><span class="nv">ROOT</span><span class="o">=</span><span class="s1">&#39;/dev/&#39;</span>
  541. <span class="k">RUN</span><span class="w"> </span>prompt<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot; &gt; &quot;</span><span class="p">;</span><span class="w"> </span><span class="o">}</span><span class="p">;</span>
  542. <span class="k">ENV</span><span class="w"> </span><span class="nv">PS1</span><span class="o">=</span><span class="s2">&quot;&gt; &quot;</span>
  543. <span class="c"># Create file for tracking edits, test patch</span>
  544. <span class="k">RUN</span><span class="w"> </span>touch<span class="w"> </span>/root/files_to_edit.txt
  545. <span class="k">RUN</span><span class="w"> </span>touch<span class="w"> </span>/root/test.patch
  546. <span class="c"># add ls file indicator</span>
  547. <span class="k">RUN</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;alias ls=&#39;ls -F&#39;&quot;</span><span class="w"> </span>&gt;&gt;<span class="w"> </span>/root/.bashrc
  548. <span class="c"># Install miniconda</span>
  549. <span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">&quot;/root/miniconda3/bin:</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span><span class="s2">&quot;</span>
  550. <span class="k">ARG</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">&quot;/root/miniconda3/bin:</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span><span class="s2">&quot;</span>
  551. <span class="k">COPY</span><span class="w"> </span>docker/getconda.sh<span class="w"> </span>.
  552. <span class="k">RUN</span><span class="w"> </span>bash<span class="w"> </span>getconda.sh<span class="w"> </span><span class="si">${</span><span class="nv">TARGETARCH</span><span class="si">}</span><span class="w"> </span><span class="se">\</span>
  553. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>rm<span class="w"> </span>getconda.sh<span class="w"> </span><span class="se">\</span>
  554. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>mkdir<span class="w"> </span>/root/.conda<span class="w"> </span><span class="se">\</span>
  555. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>bash<span class="w"> </span>miniconda.sh<span class="w"> </span>-b<span class="w"> </span><span class="se">\</span>
  556. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>rm<span class="w"> </span>-f<span class="w"> </span>miniconda.sh
  557. <span class="k">RUN</span><span class="w"> </span>conda<span class="w"> </span>--version<span class="w"> </span><span class="se">\</span>
  558. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>conda<span class="w"> </span>init<span class="w"> </span>bash<span class="w"> </span><span class="se">\</span>
  559. <span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>conda<span class="w"> </span>config<span class="w"> </span>--append<span class="w"> </span>channels<span class="w"> </span>conda-forge
  560. <span class="c"># Cache python versions</span>
  561. <span class="k">RUN</span><span class="w"> </span>conda<span class="w"> </span>create<span class="w"> </span>-y<span class="w"> </span>-n<span class="w"> </span>python3.9<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.9
  562. <span class="k">RUN</span><span class="w"> </span>conda<span class="w"> </span>create<span class="w"> </span>-y<span class="w"> </span>-n<span class="w"> </span>python3.10<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.10
  563. <span class="c"># Install python packages</span>
  564. <span class="k">COPY</span><span class="w"> </span>docker/requirements.txt<span class="w"> </span>/root/requirements.txt
  565. <span class="k">RUN</span><span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>/root/requirements.txt
  566. <span class="k">WORKDIR</span><span class="w"> </span><span class="s">/</span>
  567. <span class="k">CMD</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;/bin/bash&quot;</span><span class="p">]</span>
  568. </code></pre></div>
  569. </article>
  570. </div>
  571. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  572. </div>
  573. </main>
  574. <footer class="md-footer">
  575. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  576. <a href="../env/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Environment variables">
  577. <div class="md-footer__button md-icon">
  578. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  579. </div>
  580. <div class="md-footer__title">
  581. <span class="md-footer__direction">
  582. Previous
  583. </span>
  584. <div class="md-ellipsis">
  585. Environment variables
  586. </div>
  587. </div>
  588. </a>
  589. <a href="../summarizers/" class="md-footer__link md-footer__link--next" aria-label="Next: Summarizers">
  590. <div class="md-footer__title">
  591. <span class="md-footer__direction">
  592. Next
  593. </span>
  594. <div class="md-ellipsis">
  595. Summarizers
  596. </div>
  597. </div>
  598. <div class="md-footer__button md-icon">
  599. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
  600. </div>
  601. </a>
  602. </nav>
  603. <div class="md-footer-meta md-typeset">
  604. <div class="md-footer-meta__inner md-grid">
  605. <div class="md-copyright">
  606. Made with
  607. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  608. Material for MkDocs
  609. </a>
  610. </div>
  611. </div>
  612. </div>
  613. </footer>
  614. </div>
  615. <div class="md-dialog" data-md-component="dialog">
  616. <div class="md-dialog__inner md-typeset"></div>
  617. </div>
  618. <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.indexes", "content.action.edit", "navigation.footer", "content.code.copy", "content.footnote.tooltips", "header.autohide", "announce.dismiss"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
  619. <script src="../../assets/javascripts/bundle.525ec568.min.js"></script>
  620. <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});
  621. document$.subscribe(() => { lightbox.reload() });
  622. </script></body>
  623. </html>