Development Container Setup Guide

Prerequisites

Before setting up your Development Container environment, ensure you have:

  1. Accounts Setup

  2. Docker Desktop installed

  3. JetBrains IntelliJ installed

General IntelliJ Settings

  • First we need to ensure Jet Brains doesn’t force an Early Access Program (EAP) IDE on us!

    • Unselect the 'Always use the latest backend' box as seen in image

ij advanced

  • Next lets make sure Docker is setup so we can use in the Services tool window

ij docker

Getting Started

  1. Open project in IntelliJ

  2. Under the .devcontainer directory open the devcontainer.json and in the top left gutter:

  3. Select 'Create Dev Container and Mount Sources'

    1. A popup should appear to 'Select Backend'

    2. DO NOT SELECT EAP VERSION

ij backend

If the Headless IDE container appears stuck on 'Downloading the IDE Backend on the remote host…​':
  1. In the Services tool window (View → Tool Windows → Services)

  2. Under Docker → Containers, there should be a container with a random name (NOT your Dev Container)

    • This is the headless IDE container - select and 'Restart' this container

    • Do NOT restart your Dev Container

  3. The connection prompt should soon appear for your Dev Container

ij restart

Once everything completes you will see a brand new IDE appear

Post-Setup Configuration

Skaffold Configuration

  • In Headless IDE (inside container) > Settings > Tools > Google Cloud Code > Dependencies:

    • Set paths accordingly:

      • /usr/local/bin/skaffold

      • /usr/local/bin/kubectl

    • Settings persist across all project containers via intellij-config volume

ij skaffold

  • This essentially covers anything one needs to do to use a Devcontainer. Most other operations remain the same.

  • And as long as your container remains you can access a project from the initial IntelliJ screen under Remote Development

Optional CLI Installation

For terminal-based workflows:

# Installation
brew install devcontainer

# Common commands
devcontainer up --workspace-folder .        # Start container
devcontainer exec --container-id <id> bash  # Shell access
devcontainer down                           # Stop container