PageSourceSearch

https://www.devspace.sh/docs/assets/js/2863f24d.750952d4.js

js devspace.sh collected 2026-09-25 19:42:27 UTC 13,324 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdevspace_cloud=self.webpackChunkdevspace_cloud||[]).push([[88],{89743(e,n,s){s.d(n,{Ay:()=>t,RM:()=>l});var i=s(74848),a=s(28453),o=s(94035);const l=[{value:'<code>terminal</code> <span class="config-field-required">required</span> <span class="config-field-type"></span> <span class="config-field-default"></span> <span class="config-field-enum"></span>',id:"dev-terminal",level:3},...o.RM];function c(e){const n={code:"code",h3:"h3",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(s,{className:"config-field","data-expandable":"true",open:!0,children:[(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h3,{id:"dev-terminal",children:[(0,i.jsx)(n.code,{children:"terminal"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type"})," ",(0,i.jsx)("span",{className:"config-field-default"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"Terminal allows you to tell DevSpace to open a terminal with screen support to this container"})]}),(0,i.jsx)(o.Ay,{})]})}function t(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},94035(e,n,s){s.d(n,{Ay:()=>v,RM:()=>j});var i=s(74848),a=s(28453);function o(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-command",children:[(0,i.jsx)(n.code,{children:"command"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"string"})," ",(0,i.jsx)("span",{className:"config-field-default"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"Command is the command that should be executed on terminal start.\nThis command is executed within a shell."})]})})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}function c(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-workDir",children:[(0,i.jsx)(n.code,{children:"workDir"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"string"})," ",(0,i.jsx)("span",{className:"config-field-default"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"WorkDir is the working directory that is used to execute the command in."})]})})}function t(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}function r(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-enabled",children:[(0,i.jsx)(n.code,{children:"enabled"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"boolean"})," ",(0,i.jsx)("span",{className:"config-field-default",children:"false"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"If enabled is true, DevSpace will use the terminal. Can be also\nused to disable the terminal if set to false. DevSpace makes sure\nthat within a pipeline only one dev configuration can open a terminal\nat a t
1ime and subsequent dev terminals will fail."})]})})}function d(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}function p(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-disableReplace",children:[(0,i.jsx)(n.code,{children:"disableReplace"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"boolean"})," ",(0,i.jsx)("span",{className:"config-field-default",children:"false"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"DisableReplace tells DevSpace to not replace the pod or adjust its settings\nto make sure the pod is sleeping when opening a terminal"})]})})}function f(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}function u(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-disableScreen",children:[(0,i.jsx)(n.code,{children:"disableScreen"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"boolean"})," ",(0,i.jsx)("span",{className:"config-field-default",children:"false"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"DisableScreen will disable screen which is used by DevSpace by default to preserve\nsessions if connections interrupt or the session is lost."})]})})}function m(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}function h(e){const n={code:"code",h4:"h4",p:"p",...(0,a.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsx)(s,{className:"config-field","data-expandable":"false",open:!0,children:(0,i.jsxs)("summary",{children:[(0,i.jsxs)(n.h4,{id:"dev-terminal-disableTTY",children:[(0,i.jsx)(n.code,{children:"disableTTY"})," ",(0,i.jsx)("span",{className:"config-field-required","data-required":"false",children:"required"})," ",(0,i.jsx)("span",{className:"config-field-type",children:"boolean"})," ",(0,i.jsx)("span",{className:"config-field-default",children:"false"})," ",(0,i.jsx)("span",{className:"config-field-enum"})]}),(0,i.jsx)(n.p,{children:"DisableTTY will disable a tty shell for terminal command execution"})]})})}function x(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}const j=[{value:'<code>command</code> <span class="config-field-required">required</span> <span class="config-field-type">string</span> <span class="config-field-default"></span> <span class="config-field-enum"></span>',id:"dev-terminal-command",level:4},{value:'<code>workDir</code> <span class="config-field-required">required</span> <span class="config-field-type">string</span> <span class="config-field-default"></span> <span class="config-field-enum"></span>',id:"dev-terminal-workDir",level:4},{value:'<code>enabled</code> <span class="config-field-required">required</span> <span class="config-field-type">boolean</span> <span class="config-field-default">false</span> <span class="config-field-enum"></span>',id:"dev-terminal-enabled",level:4},{value:'<code>disableReplace</code> <span class="config-field-required">required</span> <span class="config-field-type">boolean</span> <span class="config-field-default">
1false</span> <span class="config-field-enum"></span>',id:"dev-terminal-disableReplace",level:4},{value:'<code>disableScreen</code> <span class="config-field-required">required</span> <span class="config-field-type">boolean</span> <span class="config-field-default">false</span> <span class="config-field-enum"></span>',id:"dev-terminal-disableScreen",level:4},{value:'<code>disableTTY</code> <span class="config-field-required">required</span> <span class="config-field-type">boolean</span> <span class="config-field-default">false</span> <span class="config-field-enum"></span>',id:"dev-terminal-disableTTY",level:4}];function g(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l,{}),"\n",(0,i.jsx)(t,{}),"\n",(0,i.jsx)(d,{}),"\n",(0,i.jsx)(f,{}),"\n",(0,i.jsx)(m,{}),"\n",(0,i.jsx)(x,{})]})}function v(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(g,{...e})}):g()}},7936(e,n,s){s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>t,default:()=>f,frontMatter:()=>c,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"configuration/dev/connections/terminal/terminal","title":"Configure Terminal","description":"In the dev.*.terminal section in the devspace.yaml you can configure the terminal:","source":"@site/pages/configuration/dev/connections/terminal/terminal.mdx","sourceDirName":"configuration/dev/connections/terminal","slug":"/configuration/dev/connections/terminal/","permalink":"/docs/configuration/dev/connections/terminal/","draft":false,"unlisted":false,"editUrl":"https://github.com/loft-sh/devspace/edit/main/docs/pages/configuration/dev/connections/terminal/terminal.mdx","tags":[],"version":"current","lastUpdatedAt":1655786612000,"frontMatter":{"title":"Configure Terminal","sidebar_label":"terminal"}}');var a=s(74848),o=s(28453),l=s(89743);const c={title:"Configure Terminal",sidebar_label:"terminal"},t=void 0,r={},d=[{value:"How does it work?",id:"how-does-it-work",level:2},{value:"Config Reference",id:"config-reference",level:2},...l.RM];function p(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["In the ",(0,a.jsx)(n.code,{children:"dev.*.terminal"})," section in the ",(0,a.jsx)(n.code,{children:"devspace.yaml"})," you can configure the terminal:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yaml",children:"deployments:\n  app:\n    helm:\n      values:\n        containers:\n        - image: myregistry/myapp\n\ndev:\n  my-dev:\n    imageSelector: myregistry/myapp\n    terminal: {}\n"})}),"\n",(0,a.jsx)(n.h2,{id:"how-does-it-work",children:"How does it work?"}),"\n",(0,a.jsx)(n.p,{children:"Under the hood DevSpace will replace the running pod and apply the following changes, before actually starting a terminal to it:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Remove ",(0,a.jsx)(n.code,{children:"readinessProbes"}),", ",(0,a.jsx)(n.code,{children:"startupProbes"})," & ",(0,a.jsx)(n.code,{children:"livenessProbes"})]}),"\n",(0,a.jsxs)(n.li,{children:["Change the entrypoint of the container to ",(0,a.jsx)(n.code,{children:"sleep 100000"})]}),"\n"]}),"\n",(0,a.jsx)(n.admonition,{title:"POD REPLACE",type:"info",children:(0,a.jsxs)(n.p,{children:["If you don't want DevSpace to replace the pod with a modified version, use ",(0,a.jsx)(n.code,{children:"disableReplace: true"})]})}),"\n",(0,a.jsx)(n.admonition,{title:"SCREEN",type:"info",children:(0,a.jsxs)(n.p,{children:["DevSpace will also try to install and use ",(0,a.jsx)(n.a,{href:"https://linuxize.com/post/how-to-use-linux-screen/",children:"screen"})," to start the terminal session, as this allows you to reconnect to your existing session after losing connection. You can disable this via the ",(0,a.jsx)(n.code,{children:"disableScreen: true"})," option"]})}),"\n",(0,a.jsx)(n.h2,{id:"config-reference",children:"Config Reference"}),"\n",(0,a.jsx)(l.Ay,{})]})}function f(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},28453(e,n,s){s.d(n,{R:()=>l,x:()=>c});var i=s(96540);const a={},o=i.createContext(a);function l(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.