/devspace-terminal

A containerized development terminal using DevSpace

Primary LanguageDockerfileMIT LicenseMIT

devspace-terminal

A lightweight cloud-based development environment using DevSpace and Visual Studio Code

Overview

Terminal is a light-weight development environment that compliments DevSpace for software development. By running inside the cluster you're developing against, operations are lightning fast and uploads are quick. Terminal also manages a web-based VSCode installation too, so you can edit your files directly.

How It Works

First, you deploy terminal from your computer into the cluster. Then you enter the terminal and clone your repositories. Then you connect to the web-based VSCode IDE and edit your tests and code. When you are ready to start your app, then you run $ devspace dev from within terminal. The port forwarding rules are setup to forward traffic from your app pod, to the terminal pod, and then to your computer.

Requirements

  1. Have a kubernetes cluster setup and Loft installed
  2. Have devspace CLI and the Loft plugin installed

Quickstart

  1. Ensure you have a space selected (or create a new one)
  2. Locally, $ cd ~/workspace/devspace-terminal
  3. Start terminal by $ devspace dev
    • leave this running in the background
  4. In another terminal window, enter the terminal shell by $ devspace enter -c terminal
  5. Clone your git repositories by:
    1. Terminal $ cd ~/workspace
    2. Terminal $ git clone git@github.com:noizwaves/fitness.git
    3. Terminal $ cd fitness
    4. Terminal $ git checkout using-terminal
  6. Start the app by Terminal $ devspace dev
  7. Launch Visual Studio Code by:
    1. Starting Visual Studio Code locally
    2. Following the setup instructions for remote development
    3. Attaching to the fitness-web pod
  8. Open the app locally at http://localhost:3000

Features

  1. Automatic pass-through of SSH key for GitHub and Loft configuration
  2. Synchronization of key development configurations via the ./home directory:
    1. ~/.gitconfig for Git configuration
    2. ~/.aliases for custom aliases, functions, and prompts