<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="keywords" content="installationdocker,  docker, configuration, CLI, cli">
<title>CLI Reference | Eclipse Che Documentation</title>
<link rel="stylesheet" href="css/syntax.css">

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
<!--<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">-->
<link rel="stylesheet" href="css/modern-business.css">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="css/customstyles.css">
<link rel="stylesheet" href="css/boxshadowproperties.css">
<!-- most color styles are extracted out to here -->
<link rel="stylesheet" href="css/theme-che.css">


    <link rel="stylesheet" href="/css/coderay.css" media="screen" type="text/css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" crossorigin="anonymous"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" crossorigin="anonymous"></script>
<script src="js/jquery.navgoco.min.js"></script>


<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Anchor.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/2.0.0/anchor.min.js" crossorigin="anonymous"></script>
<script src="js/toc.js"></script>
<script src="js/customscripts.js"></script>

<link rel="shortcut icon" href="che/docs/images/favicon.ico">

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

<link rel="alternate" type="application/rss+xml" title="che" href="http://0.0.0.0:4000/feed.xml">

    <script>
        $(document).ready(function() {
            // Initialize navgoco with default options
            $("#mysidebar").navgoco({
                caretHtml: '',
                accordion: true,
                openClass: 'active', // open
                save: false, // leave false or nav highlighting doesn't work right
                cookie: {
                    name: 'navgoco',
                    expires: false,
                    path: '/'
                },
                slide: {
                    duration: 400,
                    easing: 'swing'
                }
            });

            $("#collapseAll").click(function(e) {
                e.preventDefault();
                $("#mysidebar").navgoco('toggle', false);
            });

            $("#expandAll").click(function(e) {
                e.preventDefault();
                $("#mysidebar").navgoco('toggle', true);
            });

        });

    </script>
    <script>
        $(function () {
            $('[data-toggle="tooltip"]').tooltip()
        })
    </script>
    <script>
        $(document).ready(function() {
            $("#tg-sb-link").click(function() {
                $("#tg-sb-sidebar").toggle();
                $("#tg-sb-content").toggleClass('col-md-9');
                $("#tg-sb-content").toggleClass('col-md-12');
                $("#tg-sb-icon").toggleClass('fa-toggle-on');
                $("#tg-sb-icon").toggleClass('fa-toggle-off');
            });
        });
    </script>
    

</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-static-top">
    <div class="container topnavlinks">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="fa fa-home fa-lg navbar-brand" href="index.html">&nbsp;<span class="projectTitle"> Eclipse Che Documentation</span></a>
        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <!-- toggle sidebar button -->
                <li><a id="tg-sb-link" href="#"><i id="tg-sb-icon" class="fa fa-toggle-on"></i> Nav</a></li>
                <!-- entries without drop-downs appear here -->




                
                
                
                <li><a href="https://medium.com/eclipse-che-blog/" target="_blank">Blog</a></li>
                
                
                
                <li><a href="https://github.com/eclipse/che" target="_blank">Source Code</a></li>
                
                
                
                <!-- entries with drop-downs appear here -->
                <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
                
                
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Support<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        
                        <li><a href="https://github.com/eclipse/che/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Akind%2Fbug" target="_blank">Known Bugs</a></li>
                        
                        
                        
                        <li><a href="https://github.com/eclipse/che/issues/new" target="_blank">File an Issue</a></li>
                        
                        
                        
                        <li><a href="https://stackoverflow.com/questions/tagged/eclipse-che" target="_blank">Che on StackOverflow</a></li>
                        
                        
                    </ul>
                </li>
                
                
                <!-- 
			<li>



  <a class="email" title="Submit feedback" href="#" onclick="javascript:window.location='mailto:?subject= feedback&body=I have some feedback about the CLI Reference page: ' + window.location.href;"><i class="fa fa-envelope-o"></i> Feedback</a>

</li>
 -->
		
                <!--comment out this block if you want to hide search-->
                <li>
                    <!--start search-->
                    <div id="search-demo-container">
                        <input type="text" id="search-input" placeholder="search...">
                        <ul id="results-container"></ul>
                    </div>
                    <script src="js/jekyll-search.js" type="text/javascript"></script>
                    <script type="text/javascript">
                            SimpleJekyllSearch.init({
                                searchInput: document.getElementById('search-input'),
                                resultsContainer: document.getElementById('results-container'),
                                dataSource: 'search.json',
                                searchResultTemplate: '<li><a href="{url}" title="CLI Reference">{title}</a></li>',
                    noResultsText: 'No results found.',
                            limit: 10,
                            fuzzy: true,
                    })
                    </script>
                    <!--end search-->
                </li>
            </ul>
        </div>
        </div>
        <!-- /.container -->
</nav>

<!-- Page Content -->
<div class="container">
  <div id="main">
    <!-- Content Row -->
    <div class="row">
        
        
            <!-- Sidebar Column -->
            <div class="col-md-3" id="tg-sb-sidebar">
                

<ul id="mysidebar" class="nav">
  <li class="sidebarTitle"> </li>
  
  
  
      
  
  <li>
      <a href="#">Overview</a>
      <ul>
          
          
          
          <li><a href="index.html">Introduction</a></li>
          
          
          
          
          
          
          <li><a href="quick-start.html">Getting Started</a></li>
          
          
          
          
          
          
          <li><a href="single-multi-user.html">Single and Multi-User Flavors</a></li>
          
          
          
          
          
          
          <li><a href="infra-support.html">Supported Infrastructures</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Che on Docker</a>
      <ul>
          
          
          
          <li><a href="docker-single-user.html">Docker - Single User</a></li>
          
          
          
          
          
          
          <li><a href="docker-multi-user.html">Docker - Multi User</a></li>
          
          
          
          
          
          
          <li><a href="docker-config.html">Docker - Configuration</a></li>
          
          
          
          
          
          
          <li class="active"><a href="docker-cli.html">Docker - CLI Reference</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Che on Kubernetes</a>
      <ul>
          
          
          
          <li><a href="kubernetes-single-user.html">Kubernetes - Single User</a></li>
          
          
          
          
          
          
          <li><a href="kubernetes-multi-user.html">Kubernetes - Multi User</a></li>
          
          
          
          
          
          
          <li><a href="kubernetes-config.html">Kubernetes - Configuration</a></li>
          
          
          
          
          
          
          <li><a href="kubernetes-admin-guide.html">Kubernetes - Admin Guide</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Che on OpenShift</a>
      <ul>
          
          
          
          <li><a href="openshift-single-user.html">OpenShift - Single User</a></li>
          
          
          
          
          
          
          <li><a href="openshift-multi-user.html">OpenShift - Multi User</a></li>
          
          
          
          
          
          
          <li><a href="openshift-config.html">OpenShift - Configuration</a></li>
          
          
          
          
          
          
          <li><a href="openshift-admin-guide.html">OpenShift - Admin Guide</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">User Management</a>
      <ul>
          
          
          
          <li><a href="user-management.html">Authentication and Authorization</a></li>
          
          
          
          
          
          
          <li><a href="authentication.html">Security Model</a></li>
          
          
          
          
          
          
          <li><a href="permissions.html">Permissions</a></li>
          
          
          
          
          
          
          <li><a href="organizations.html">Organizations in UD</a></li>
          
          
          
          
          
          
          <li><a href="resource-management.html">Resource Management</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">User Guides</a>
      <ul>
          
          
          
          <li><a href="creating-starting-workspaces.html">Creating and starting Workspaces</a></li>
          
          
          
          
          
          
          <li><a href="ide-projects.html">Projects</a></li>
          
          
          
          
          
          
          <li><a href="editor-code-assistance.html">Editor and Code-Assistance</a></li>
          
          
          
          
          
          
          <li><a href="dependency-management.html">Dependency Management</a></li>
          
          
          
          
          
          
          <li><a href="commands-ide-macro.html">Commands and IDE Macros</a></li>
          
          
          
          
          
          
          <li><a href="version-control.html">Version Control</a></li>
          
          
          
          
          
          
          <li><a href="debug.html">Debug</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Workspace Administration</a>
      <ul>
          
          
          
          <li><a href="what-are-workspaces.html">Workspace Overview</a></li>
          
          
          
          
          
          
          <li><a href="stacks.html">Workspace - Stacks</a></li>
          
          
          
          
          
          
          <li><a href="recipes.html">Workspace - Recipes</a></li>
          
          
          
          
          
          
          <li><a href="servers.html">Workspace - Servers</a></li>
          
          
          
          
          
          
          <li><a href="installers.html">Workspace - Installers</a></li>
          
          
          
          
          
          
          <li><a href="volumes.html">Workspace - Volumes Mount</a></li>
          
          
          
          
          
          
          <li><a href="env-variables.html">Workspace - Environment Variables</a></li>
          
          
          
          
          
          
          <li><a href="projects.html">Workspace - Projects</a></li>
          
          
          
          
          
          
          <li><a href="workspaces-troubleshooting.html">Workspace - Troubleshooting</a></li>
          
          
          
          
          
          
          <li><a href="workspace-data-model.html">Workspace Data Model</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Portable Workspaces</a>
      <ul>
          
          
          
          <li><a href="chedir-getting-started.html">Chedir - Getting Started</a></li>
          
          
          
          
          
          
          <li><a href="why-chedir.html">Chedir - Why Chedir?</a></li>
          
          
          
          
          
          
          <li><a href="chedir-installation.html">Chedir - Installation</a></li>
          
          
          
          
          
          
          <li><a href="chedir-project-setup.html">Chedir - Project Setup</a></li>
          
          
          
          
          
          
          <li><a href="chedir-up-and-down.html">Chedir - Up and Down</a></li>
          
          
          
          
          
          
          <li><a href="chefile.html">Chedir - Chefile</a></li>
          
          
          
          
          
          
          <li><a href="chedir-ssh.html">Chedir - SSH</a></li>
          
          
          
          
          
          
          <li><a href="factories-getting-started.html">Factory - Getting Started</a></li>
          
          
          
          
          
          
          <li><a href="creating-factories.html">Factory - Creating</a></li>
          
          
          
          
          
          
          <li><a href="factories_json_reference.html">Factory - JSON Reference</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Developer Guides</a>
      <ul>
          
          
          
          <li><a href="framework-overview.html">Overview</a></li>
          
          
          
          
          
          
          <li><a href="rest-api.html">SDK - REST API</a></li>
          
          
          
          
          
          
          <li><a href="che-in-che-quickstart.html">SDK - Your First Plugin</a></li>
          
          
          
          
          
          
          <li><a href="build-reqs.html">SDK - Building Che</a></li>
          
          
          
          
          
          
          <li><a href="assemblies.html">SDK - Assemblies</a></li>
          
          
          
          
          
          
          <li><a href="logging.html">SDK - Logging</a></li>
          
          
          
          
          
          
          <li><a href="ide-extensions-gwt.html">SDK - GWT IDE Extensions</a></li>
          
          
          
          
          
          
          <li><a href="server-side-extensions.html">SDK - Server Side Extensions</a></li>
          
          
          
          
          
          
          <li><a href="custom-installers.html">SDK - Installers</a></li>
          
          
          
          
          
          
          <li><a href="project-types.html">SDK - Project Types</a></li>
          
          
          
          
          
          
          <li><a href="language-servers.html">SDK - Language Support</a></li>
          
          
          
          
          
          
          <li><a href="parts.html">IDE UI&#58 Parts</a></li>
          
          
          
          
          
          
          <li><a href="actions.html">IDE UI&#58 Actions</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Dev Essentials</a>
      <ul>
          
          
          
          <li><a href="guice.html">Dependency Injection</a></li>
          
          
          
          
          
          
          <li><a href="dto.html">Transport&#58 DTO</a></li>
          
          
          
          
          
          
          <li><a href="json-rpc.html">Communication&#58 JSON-RPC</a></li>
          
          
          
          
          
          
          <li><a href="handling-projects-in-plugins.html">Handling Projects in Plugins</a></li>
          
          
          
          
          
          
          <li><a href="dao.html">Persistence, DAO</a></li>
          
          
          
          
          
          
          <li><a href="properties.html">Properties</a></li>
          
          
          
          
      </ul>
   </li>
     
      
  
  <li>
      <a href="#">Infrastructure and SPI</a>
      <ul>
          
          
          
          <li><a href="spi_overview.html">Overview</a></li>
          
          
          
          
          
          
          <li><a href="spi-implementation.html">Implementation Notes</a></li>
          
          
          
          
      </ul>
   </li>
     
      
      
      <!-- if you aren't using the accordion, uncomment this block:
         <p class="external">
             <a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
         </p>
         -->
</ul>

<!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
<script>$("li.active").parents('li').toggleClass("active");</script>

            </div>

            
        

        <!-- Content Column -->
        <div class="col-md-9" id="tg-sb-content">
            <div class="post-header">
   <h1 class="post-title-main">CLI Reference</h1>
</div>



<div class="post-content">

   

    
    
<!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
<script>
$( document ).ready(function() {
  // Handler for .ready() called.
$('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2' });
/* this offset helps account for the space taken up by the floating toolbar. */
$('#toc').on('click', 'a', function() {
  var target = $(this.getAttribute('href'))
    , scroll_target = target.offset().top
  $(window).scrollTop(scroll_target - 10);
  return false
})

});
</script>

<div id="toc"></div>

    


    <!-- 


     -->

  <div class="sect1">
<h2 id="cli-syntax-and-commands">CLI Syntax and Commands</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The CLI is a Docker image that comes with a collection of commands to configure, interact and start Che. The CLI also contains commands for end users to interact with workspaces such as sync and ssh.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>USAGE:
  docker run -it --rm &lt;DOCKER_PARAMETERS&gt; eclipse/che-cli:&lt;version&gt; [COMMAND]

MANDATORY DOCKER PARAMETERS:
  -v &lt;LOCAL_PATH&gt;:/data                Where user, instance, and log data saved

OPTIONAL DOCKER PARAMETERS:
  -e CHE_HOST=&lt;YOUR_HOST&gt;              IP address or hostname where che will serve its users
  -e CHE_PORT=&lt;YOUR_PORT&gt;              Port where che will bind itself to
  -e CHE_CONTAINER=&lt;YOUR_NAME&gt;         Prefix name for the che container
  -v &lt;LOCAL_PATH&gt;:/data/instance       Where instance, user, log data will be saved
  -v &lt;LOCAL_PATH&gt;:/data/backup         Where backup files will be saved
  -v &lt;LOCAL_PATH&gt;:/repo                che git repo - uses local binaries and manifests
  -v &lt;LOCAL_PATH&gt;:/assembly            che assembly - uses local binaries
  -v &lt;LOCAL_PATH&gt;:/sync                Where remote ws files will be copied with sync command
  -v &lt;LOCAL_PATH&gt;:/unison              Where unison profile for optimizing sync command resides
  -v &lt;LOCAL_PATH&gt;:/chedir              Soure repository to convert into workspace with Chedir utility

COMMANDS:
  action &lt;action-name&gt;                 Start action on che instance
  backup                               Backups che configuration and data to /data/backup volume mount
  config                               Generates a che config from vars; run on any start / restart
  destroy                              Stops services, and deletes che instance data
  dir &lt;command&gt;                        Use Chedir and Chefile in the directory mounted to :/chedir
  download                             Pulls Docker images for the current che version
  help                                 This message
  info                                 Displays info about che and the CLI
  init                                 Initializes a directory with a che install
  offline                              Saves che Docker images into TAR files for offline install
  restart                              Restart che services
  restore                              Restores che configuration and data from /data/backup mount
  rmi                                  Removes the Docker images for &lt;version&gt;, forcing a repull
  ssh &lt;wksp-name&gt; [machine-name]       SSH to a workspace if SSH agent enabled
  start                                Starts che services
  stop                                 Stops che services
  sync &lt;wksp-name&gt;                     Synchronize workspace with local directory mounted to :/sync
  test &lt;test-name&gt;                     Start test on che instance
  upgrade                              Upgrades che from one version to another with migrations and backups
  version                              Installed version and upgrade paths

GLOBAL COMMAND OPTIONS:
  --fast                               Skips networking, version, nightly and preflight checks
  --offline                            Runs CLI in offline mode, loading images from disk
  --debug                              Enable debugging of che server
  --trace                              Activates trace output for debugging CLI</pre>
</div>
</div>
<div class="paragraph">
<p>The CLI has three primary phases: initialization, configuration, and start. The initialization phase is executed by <code>init</code> and will install version-specific files into the folder mounted to <code>/data</code>. This includes the universal configuration file named <code>che.env</code>, a version identifier, and a location where configuration files will be saved. The configuration is executed by the <code>config</code> command and takes as input your <code>che.env</code> configuration file, the OS of your host, and then generates an OS-specific set of configuration files in the <code>/data/instance</code> folder that can be used to run an instance of Che. The configuration phase will run an initialization if a folder is not found. Every execution of the <code>config</code> command will overwrite the files in <code>/data/instance</code> with the latest configuration. This way if an admin modifies any configuration file, the instance’s configuration files will be updated to be guaranteed consistent. The CLI generates a large number of configuration files specific to running Che. The configuration files are sourced from Puppet templates that are stored in our GitHub repository under <code>/dockerfiles/init</code>. The start phase is executed by <code>start</code> and will use a configuration-generated <code>docker-compose-container.yml</code> file to launch Eclipse Che. The start phase always executes a <code>config</code> command, so any files that were edited in <code>/data/instance</code> will be overwritten with the generated configuration from the CLI.</p>
</div>
<div class="paragraph">
<p>The CLI will hide most error conditions from standard out. Internal stack traces and error output is redirected to <code>cli.log</code>, which is saved in the host folder where <code>:/data</code> is mounted.</p>
</div>
<div class="paragraph">
<p>You can override any value in <code>che.env</code> for a single execution by passing in <code>-e NAME=VALUE</code> on the command line. The CLI will detect the values on the command line and ignore those imported from <code>che.env</code>.</p>
</div>
<hr>
<div class="paragraph">
<p><em>action</em></p>
</div>
<div class="paragraph">
<p>Executes some actions on the Eclipse Che instance or on a workspace running inside Che. For example to list all workspaces on Che, the following command can be used <code>action list-workspaces</code>. To execute a command on a workspace <code>action execute-command &lt;workspace-name&gt; &lt;action&gt;</code> where action can be any bash command.</p>
</div>
<hr>
<div class="paragraph">
<p><em>backup</em></p>
</div>
<div class="paragraph">
<p>TARS your <code>/instance</code> into files and places them into <code>/backup</code>. These files are restoration-ready.</p>
</div>
<hr>
<div class="paragraph">
<p><em>config</em></p>
</div>
<div class="paragraph">
<p>Generates a Che instance configuration thta is placed in <code>/instance</code>. This command uses puppet to generate Docker Compose configuration files to run Che and its associated server. Che’s server configuration is generated as a che.properties file that is volume mounted into the Che server when it boots. This command is executed on every <code>start</code> or <code>restart</code>.</p>
</div>
<div class="paragraph">
<p>If you are using a <code>eclipse/che:&lt;version&gt;</code> image and it does not match the version that is in <code>/instance/che.ver</code>, then the configuration will abort to prevent you from running a configuration for a different version than what is currently installed.</p>
</div>
<div class="paragraph">
<p>This command respects <code>--no-force</code>, <code>--pull</code>, <code>--force</code>, and <code>--offline</code>.</p>
</div>
<hr>
<div class="paragraph">
<p><em>destroy</em></p>
</div>
<div class="paragraph">
<p>Deletes <code>/docs</code>, <code>che.env</code> and <code>/instance</code>, including destroying all user workspaces, projects, data, and user database. If you pass <code>--quiet</code> then the confirmation warning will be skipped. Passing <code>--cli</code> will also destroy the <code>cli.log</code>. By default this is left behind for traceability.</p>
</div>
<hr>
<div class="paragraph">
<p><em>dir</em></p>
</div>
<div class="paragraph">
<p>Boots a new Eclipse Che instance with a workspace for the folder <code>:/chedir</code> defined as volume mount in parameter.</p>
</div>
<div class="paragraph">
<p>If for example <code>$HOME/my-project</code> is given as parameter, a new Che instance will be created, using <code>$HOME/my-project</code> as project in the IDE.</p>
</div>
<div class="paragraph">
<p>So inside the IDE, <code>/projects</code> folder will contain a <code>my-project</code> folder with your host folder. Then, any changes inside the IDE will be reflected in your host folder. And the opposite is also true, updating a file on your local computer will update the content of the file inside the IDE.</p>
</div>
<div class="paragraph">
<p>Other commands are <code>init</code>,<code>up</code>, <code>down</code>, <code>ssh</code> and <code>status</code></p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>init</code> : Initialize the directory specified and add a default <code>Chefile</code> file if there is none</p>
</li>
<li>
<p><code>up</code> : Boot Eclipse Che with workspace on folder</p>
</li>
<li>
<p><code>down</code> : Stop Eclipse Che and any workspaces</p>
</li>
<li>
<p><code>ssh</code> : Connect to the running workspace by using ssh</p>
</li>
<li>
<p><code>status</code> : Display if an instance of Eclipse Che is running or not for the specified folder.</p>
</li>
</ul>
</div>
<hr>
<div class="paragraph">
<p><em>download</em></p>
</div>
<div class="paragraph">
<p>Used to download Docker images that will be stored in your Docker images repository. This command downloads images that are used by the CLI as utilities, for Che to do initialization and configuration, and for the runtime images that Che needs when it starts. This command respects <code>--offline</code>, <code>--pull</code>, <code>--force</code>, and <code>--no-force</code> (default). This command is invoked by <code>che init</code>, <code>che config</code>, and <code>che start</code>.</p>
</div>
<div class="paragraph">
<p><code>download</code> is invoked by <code>che init</code> before initialization to download images for the version specified by <code>eclipse/che:&lt;version&gt;</code>.</p>
</div>
<div class="paragraph">
<p>It is possible to override the docker images used by the CLI by setting the following environment variables:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>IMAGE_INIT</code> to override the default <code>eclipse/che-init:&lt;version&gt;</code> docker image,</p>
</li>
<li>
<p><code>IMAGE_CHE</code> to override the default <code>eclipse/che-server:&lt;version&gt;</code> docker image.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For example if, for both images, you need to use to use a given tag in you own docker account, you can add the following parameters to the docker command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>-e IMAGE_INIT=myDockerAccount/che-init:givenTag -e IMAGE_CHE=myDockerAccount/che-server:givenTag</pre>
</div>
</div>
<hr>
<div class="paragraph">
<p><em>info</em></p>
</div>
<div class="paragraph">
<p>Displays system state and debugging information. <code>--network</code> runs a test to take your <code>CHE_HOST</code> value to test for networking connectivity simulating browser &gt; Che and Che &gt; workspace connectivity. <code>--bundle</code> will generate a support diagnostic bundle in a TAR file which includes the output of certain commands and your execution logs.</p>
</div>
<hr>
<div class="paragraph">
<p><em>init</em></p>
</div>
<div class="paragraph">
<p>Initializes an empty directory with a Che configuration and instance folder where user data and runtime configuration will be stored. You must provide a <code>&lt;path&gt;:/data</code> volume mount, then Che creates a <code>instance</code> and <code>backup</code> subfolder of <code>&lt;path&gt;</code>. You can optionally override the location of <code>instance</code> by volume mounting an additional local folder to <code>/data/instance</code>. You can optionally override the location of where backups are stored by volume mounting an additional local folder to <code>/data/backup</code>. After initialization, a <code>che.env</code> file is placed into the root of the path that you mounted to <code>/data</code>.</p>
</div>
<div class="paragraph">
<p>These variables can be set in your local environment shell before running and they will be respected during initialization:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 44%;">
<col style="width: 56%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Variable</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHE_HOST</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The IP address or DNS name of the Che service. We use <code>eclipse/che-ip</code> to attempt discovery if not set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CHE_PORT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The port the Che server will run on and expose in its container for your clients to connect to.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Che depends upon Docker images. We use Docker images to:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Provide cross-platform utilities within the CLI. For example, in scenarios where we need to perform a <code>curl</code> operation, we use a small Docker image to perform this function. We do this as a precaution as many operating systems (like Windows) do not have curl installed.</p>
</li>
<li>
<p>Look up the master version and upgrade manifest, which is saved within the CLI docker image in the /version subfolder.</p>
</li>
<li>
<p>Perform initialization and configuration of Che such as with <code>eclipse/che-init</code>. This image contains templates to be installed onto your computer used by the CLI to configure Che for your specific OS.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>You can control how Che downloads these images with command line options. All image downloads are performed with <code>docker pull</code>.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 32%;">
<col style="width: 68%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Mode &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--no-force</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Default behavior. Will download an image if not found locally. A local check of the image will see if an image of a matching name is in your local registry and then skip the pull if it is found. This mode does not check DockerHub for a newer version of the same image.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--pull</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Will always perform a <code>docker pull</code> when an image is requested. If there is a newer version of the same tagged image at DockerHub, it will pull it, or use the one in local cache. This keeps your images up to date, but execution is slower.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--force</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Performs a forced removal of the local image using <code>docker rmi</code> and then pulls it again (anew) from DockerHub. You can use this as a way to clean your local cache and ensure that all images are new.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--offline</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Loads Docker images from <code>backup/*.tar</code> folder during a pre-boot mode of the CLI. Used if you are performing an installation or start while disconnected from the Internet.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>You can reinstall Che on a folder that is already initialized and preserve your <code>che.env</code> values by passing the <code>--reinit</code> flag.</p>
</div>
<hr>
<div class="paragraph">
<p><em>offline</em></p>
</div>
<div class="paragraph">
<p>Saves all of the Docker images that Che requires into <code>/backup/*.tar</code> files. Each image is saved as its own file. If the <code>backup</code> folder is available on a machine that is disconnected from the Internet and you start Che with <code>--offline</code>, the CLI pre-boot sequence will load all of the Docker images in the <code>/backup/</code> folder.</p>
</div>
<div class="paragraph">
<p><code>--list</code> option will list all of the core images and optional stack images that can be downloaded. The core system images and the CLI will always be saved, if an existing TAR file is not found. <code>--image:&lt;image-name&gt;</code> will download a single stack image and can be used multiple times on the command line. You can use <code>--all-stacks</code> or <code>--no-stacks</code> to download all or none of the optional stack images.</p>
</div>
<hr>
<div class="paragraph">
<p><em>restart</em></p>
</div>
<div class="paragraph">
<p>Performs a <code>stop</code> followed by a <code>start</code>, respecting <code>--pull</code>, <code>--force</code>, <code>--offline</code>, <code>--skip:config</code>, <code>--skip:preflight</code>, and <code>--skip:postflight</code>.</p>
</div>
<hr>
<div class="paragraph">
<p><em>restore</em></p>
</div>
<div class="paragraph">
<p>Restores <code>/instance</code> to its previous state. You do not need to worry about having the right Docker images. The normal start / stop / restart cycle ensures that the proper Docker images are available or downloaded, if not found.</p>
</div>
<div class="paragraph">
<p>This command will destroy your existing <code>/instance</code> folder, so use with caution, or set these values to different folders when performing a restore.</p>
</div>
<hr>
<div class="paragraph">
<p><em>rmi</em></p>
</div>
<div class="paragraph">
<p>Deletes the Docker images from the local registry that Che has downloaded for this version.</p>
</div>
<hr>
<div class="paragraph">
<p><em>ssh</em></p>
</div>
<div class="paragraph">
<p>Connects the current terminal where the command is started to the terminal of a machine of the workspace. If no machine is specified in the command, it will connect to the default machine which is the dev machine. The syntax is <code>ssh &lt;workspace-name&gt; [machine-name]</code> The ssh connection will work only if there is a workspace ssh key setup. A default ssh key is automatically generated when a workspace is created.</p>
</div>
<hr>
<div class="paragraph">
<p><em>sync</em></p>
</div>
<div class="paragraph">
<p>Synchronizes a workspace’s contents with a local folder mounted to :/sync The syntax is <code>-v &lt;path-on-your-machine&gt;:/sync eclipse/che sync &lt;workspace-name&gt;</code></p>
</div>
<div class="paragraph">
<p>To get extra information, the flag <code>--unison-verbose</code> can be used to display log of the underlying unison tool.</p>
</div>
<hr>
<div class="paragraph">
<p><em>start</em></p>
</div>
<div class="paragraph">
<p>Starts Che and its services using <code>docker-compose</code>. If the system cannot find a valid configuration it will perform an <code>init</code>. Every <code>start</code> and <code>restart</code> will run a <code>config</code> to generate a new configuration set using the latest configuration. The starting sequence will perform pre-flight testing to see if any ports required by Che are currently used by other services and post-flight checks to verify access to key APIs.</p>
</div>
<div class="paragraph">
<p>You can skip pre-flight and post-flight checks with <code>--skip:preflight</code> and <code>--skip:postflight</code> respectively. The typical Che start sequence includes an invocation of the <code>config</code> method, which regenerates configuration files placed into the <code>/instance</code> folder. You can skip this generation with <code>--skip:config</code>. You can automatically print out the server logs to the console during the booting of the server by appending <code>--follow</code>. This flag is blocking and requires you to CTRL-C to interrupt the output.</p>
</div>
<hr>
<div class="paragraph">
<p><em>stop</em></p>
</div>
<div class="paragraph">
<p>The default stop is a graceful stop where each workspace is stopped and confirmed shutdown before stopping system services. If workspaces are configured to snap on stop, then all snaps will be completed before system service shutdown begins. You can ignore workspace stop behavior and shut down only system services with –force flag.</p>
</div>
<hr>
<div class="paragraph">
<p><em>test</em></p>
</div>
<div class="paragraph">
<p>Performs some tests on your local instance of Che. It can for example check the ability to create a workspace, start the workspace by using a custom Workspace runtime and then use it. The list of all the tests available can be obtained by providing only <code>test</code> command.</p>
</div>
<hr>
<div class="paragraph">
<p><em>upgrade</em></p>
</div>
<div class="paragraph">
<p>Manages the sequence of upgrading Che from one version to another. Run <code>che version</code> to get a list of available versions that you can upgrade to.</p>
</div>
<div class="paragraph">
<p>Upgrading Che is done by using a <code>eclipse/che:&lt;version&gt;</code> that is newer than the version you currently have installed. For example, if you have 5.0.0-M2 installed and want to upgrade to 5.0.0-M7, then:</p>
</div>
<div class="listingblock">
<div class="content">
<pre># Get the new version of Che
docker pull eclipse/che:5.0.0-M7

# You now have two eclipse/che images (one for each version)
# Perform an upgrade - use the new image to upgrade old installation
docker run &lt;volume-mounts&gt; eclipse/che:5.0.0-M7 upgrade</pre>
</div>
</div>
<div class="paragraph">
<p>The upgrade command has numerous checks to prevent you from upgrading Che if the new image and the old version are not compatiable. In order for the upgrade procedure to proceed, the CLI image must be newer than the value of '/instance/che.ver'.</p>
</div>
<div class="paragraph">
<p>The upgrade process: a) performs a version compatibility check, b) downloads new Docker images that are needed to run the new version of Che, c) stops Che if it is currently running triggering a maintenance window, d) backs up your installation, e) initializes the new version, and f) starts Che.</p>
</div>
<div class="paragraph">
<p>You can run <code>che version</code> to see the list of available versions that you can upgrade to.</p>
</div>
<div class="paragraph">
<p><code>--skip-backup</code> option allow to skip <a href="https://github.com/codenvy/che-docs/blob/master/src/main/_docs/setup/setup-cli.md#backup">backup</a> during update, that could be useful to speed up upgrade because <a href="https://github.com/codenvy/che-docs/blob/master/src/main/_docs/setup/setup-cli.md#backup">backup</a> can be very expensive operation if <code>/instace</code> folder is really big due to many user worksapces and projects.</p>
</div>
<hr>
<div class="paragraph">
<p><em>version</em></p>
</div>
<div class="paragraph">
<p>Provides information on the current version and the available versions that are hosted in Che’s repositories. <code>che upgrade</code> enforces upgrade sequences and will prevent you from upgrading one version to another version where data migrations cannot be guaranteed.</p>
</div>
<hr>
</div>
</div>
<div class="sect1">
<h2 id="cli-development">CLI Development</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can customize the CLI using a variety of techniques. This section discusses how engineers develop and test the CLI on their local machines.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="structure">Structure</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Che CLI is constructed of multiple Docker images within the Che source repository.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>/dockerfiles/base  # Common functions and commands
/dockerfiles/cli   # CLI entrypoint, overrides, and version information
/dockerfiles/init  # Manifests used to configure Che on a host installation</pre>
</div>
</div>
<div class="paragraph">
<p>The Che CLI is authored in <code>bash</code>. The <code>cli</code> image depends upon both the <code>base</code> image and the <code>init</code> image. In the source repository, we have <code>build.sh</code> commands which will build these Docker images for you either one at a time or collectively as a group.</p>
</div>
<div class="paragraph">
<p>It can become tedious rebuilding images every time you want to test a small change to a bash script. You can avoid having to rebuild images each time for every change to a bash script by volume mounting the contents during the image execution. You cannot volume mount the <code>entrypoint.sh</code> file which is where each container has a launch point, but you can volume mount others:</p>
</div>
<div class="listingblock">
<div class="content">
<pre># Volume mount the contents of the base image
-v &lt;path-to-che-repo&gt;/dockerfiles/scripts/base/scripts:/base/scripts

# Volume mount the contents of the init image
-v &lt;path-to-che-repo&gt;:/repo</pre>
</div>
</div>
<div class="paragraph">
<p>If you run the Che CLI in this configuration, then any changes made to the bash files or templates in those repositories will be used without having to first rebuild the CLI image.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="custom-cli">Custom CLI</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Che CLI was designed to be overridden to allow different CLIs to be created from the same base structure. This is how Codenvy and ARTIK has an identical CLIs to Che. The CLI is created with a few minimal assets:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>/dockerfiles/cli/build.sh               # Local file to build the image
/dockerfiles/cli/Dockerfile             # Image definition, must FROM eclipse/che-base:nightly
/dockerfiles/cli/scripts                # Contains additional commands in form of cmd_&lt;name&gt;.sh
/dockerfiles/cli/scripts/entrypoint.sh  # The entrypoint of the CLI container, with usage() method
/dockerfiles/cli/scripts/cli.sh         # Defines CLI-specific product names &amp; variables
/dockerfiles/cli/version                # Contains version-specific data the CLI requires</pre>
</div>
</div>
<div class="paragraph">
<p>You can add additional commands to the Che CLI beyond the base set of commands that are provided by adding a file of the name <code>cmd_&lt;name&gt;.sh</code> into the <code>scripts</code> folder. Codenvy is an <a href="https://github.com/codenvy/codenvy/tree/master/dockerfiles/cli/scripts">example that adds additional commands</a>.</p>
</div>
<div class="paragraph">
<p>The <code>version</code> folder has information that details the latest version and a sub-folder for each version that is available for installation. Each version subfolder has version-specific data that the CLI depends upon to create a manifest of Docker images that must be downloaded to support the product that is going to be run. When we generate a release of the Che CLI, we have our CI systems automatically update the <code>/version</code> folder with the version-specific information contained in a release.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="puppet-templates">Puppet Templates</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Che CLI uses Puppet to generate OS-specific configuration files based upon environment variables set by the user either with <code>-e &lt;VALUE&gt;</code> options on the command line, or by modifying their <code>che.env</code> file. We pass all of these values into Puppet and then run a puppet configuration utility across the files contained in the <code>/dockerfiles/init/modules</code> and <code>/dockerfiles/init/manifests</code> folder to take the templates contained within the <code>/init</code> module, marry them with user-specific variables, and then generate an instance-specific configuration in <code>/instance</code>. Puppet has logic constructs that allow us to generate different kinds of constructs with logic based upon the values provided by end users.</p>
</div>
<div class="paragraph">
<p>This puppet-based approach allow us to simplify the outputs for end users and limit the locations where end users need to configure various parts of the system. One powerful example of this is that we generate two <code>docker-compose.yml</code> files from a single Puppet template. In the user’s <code>/instance</code> folder is <code>docker-compose.yml</code> and <code>docker-compose-container.yml</code>. The first one is a configuration file that allows a user to run Docker compose for Che on their host. They can just <code>docker-compose up</code> in that folder. The second file is for running Docker compose from within a container, which is what the CLI does. The syntax of Docker compose changes in each of these scenarios as the files being referenced from within the compose syntax are different. In the <code>init</code> image, we have a single template for Docker Compose and then apply it in two configurations using Puppet.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cli-tests">CLI Tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p>There are existing <a href="https://github.com/sstephenson/bats">bats</a> tests for the Che CLI, which runs automatically with each execution of a <code>build.sh</code> script located in the <code>dockerfiles/cli</code> folder. To skip them, pass <code>--skip-tests</code> argument when running the build script. If you want to just run tests you can achieve it by running script <code>test.sh</code> located in the same folder. Tests utilizes docker image <code>eclipse/che-bats</code> which is build from <code>Dockerfile</code> placed in <code>dockerfiles/bats</code>.</p>
</div>
</div>
</div>

    <div class="tags">
        
        <b>Tags: </b>
        
        
        
        <a href="tag_installation.html" class="btn btn-default navbar-btn cursorNorm" role="button">installation</a>
        
        
        
        <a href="tag_docker.html" class="btn btn-default navbar-btn cursorNorm" role="button">docker</a>
        
        
        
    </div>

<!-- 
 -->

</div>

<hr class="shaded"/>

<footer>
            <div class="row">
                <div class="col-lg-12 footer">
                    Eclipse Che - Documentation <br/>
                    Site last generated: Sep 13, 2018 <br/>
                    <hr>
                    <a href="http://www.eclipse.org" target="_blank">Eclipse Foundation</a><br/>
                    <a href="http://www.eclipse.org/legal/privacy.php" target="_blank">Privacy Policy</a><br/>
                    <a href="http://www.eclipse.org/legal/termsofuse.php" target="_blank">Terms of Use</a><br/>
                    <a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">Eclipse Public License</a><br/>
                    <a href="http://www.eclipse.org/legal" target="_blank">Legal Resources</a><br/>
                </div>
            </div>
</footer>




    <!-- /.row -->
</div>
<!-- /.container -->
</div>
<!-- /#main -->
    </div>

</body>

</html>
