CS186 Projects
  • Overview
  • Assignments
    • Project 0: Setup
      • Getting Started
      • Your Tasks
      • Submitting the Assignment
    • Project 1: SQL
      • Getting Started
      • SQL vs. SQLite
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 2: B+ Trees
      • Getting Started
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 3: Joins and Query Optimization
      • Getting Started
      • Part 0: Skeleton Code
      • Part 1: Join Algorithms
        • Task 1 Debugging
        • Task 2 Common Errors
      • Part 2: Query Optimization
      • Testing
      • Submitting the Assignment
    • Project 4: Concurrency
      • Getting Started
      • Part 0: Skeleton Code
      • Part 1: Queuing
      • Part 2: Multigranularity
      • Testing
      • Submitting the Assignment
    • Project 5: Recovery
      • Getting Started
      • Your Tasks
      • Testing
      • Submitting the Assignment
    • Project 6: NoSQL
      • Getting Started
      • Your Tasks
      • Submitting the Assignment
  • Common
    • Adding a partner on GitHub
    • Development Container Setup
    • Miscellaneous
      • Nested Loop Join Animations
Powered by GitBook
On this page
  • Development Container Setup
  • Requirements
  • Docker
  • IDE
  • Creating the Dev Container
  • IntelliJ IDEA Ultimate
  • Visual Studio Code (VS Code) (local)
  • Codespaces (VS Code or web browser)
  1. Common

Development Container Setup

PreviousAdding a partner on GitHubNextMiscellaneous

Last updated 3 months ago

Development Container Setup

A is a way to configure a development environment in a Docker container and install an agent that communicates with the IDE running on the host machine. The container can run locally or on a remote host.

This configuration solution is an option for students who are unable to configure their local environment via the existing Maven and JDK setup infrastructure and/or need to build on a remote host due to system constraints.

Requirements

Docker

Install on the machine running the build container, i.e. your laptop or personal computer.

We recommend that you run the build container on the host machine (a personal device); however, it is possible to run the container elsewhere, though course staff is unlikely to support alternate methods.

IDE

We recommend using IntelliJ IDEA due to its debugging capabilities and are unlikely to support other IDEs. If you prefer a different IDE, see below for instructions to run a development container via Visual Studio Code (VS Code) or GitHub Codespaces.

IntelliJ IDEA Ultimate

Note that this version is different from IntelliJ IDEA CE (Community Edition); however, both can remain installed and be used on your device simultaneously.

Development containers are currently supported only in the of IntelliJ IDEA. You may obtain a free, non-commercial license on a new or existing JetBrains account using your university address (@berkeley.edu). Note that if you have an existing JetBrains account linked to a different email address, you may need to your personal email to your university email JetBrains account.

Other IDEs

Install your preferred IDE. Note that course staff will only support IntelliJ IDEA Ultimate (recommended), VS Code, and GitHub Codespaces.

Creating the Dev Container

IntelliJ IDEA Ultimate

Start the IDE and navigate to "Dev Containers":

Create a "New Dev Container":

Use the HTTPS address of the rookiedb repository for the relevant project. For example, a student with GitHub username oski working on Project 0 would use the repository address https://github.com/cs186-student/sp25-proj0-oski.git:

Click "Build Container and Continue" and wait for Docker to download and build the image (this will take a few minutes).

Troubleshooting

GitHub Authentication

SSH Repository URL

If you're creating a dev container using the SSH URL instead of the HTTPS URL, you may need to run ssh-add -k locally to add your private SSH key to your device. You may run ssh-add -l to see the SSH keys currently on your device.

Visual Studio Code (VS Code) (local)

Then select Clone Repository in Container Volume and follow prompts to clone the repository into the container.

Codespaces (VS Code or web browser)

Either open VS Code or the web-based editor for the repository, https://github.dev/cs186-student/sp25-projX-username, by navigating through github.dev instead of github.com.

Please consult the documentation for latest pricing information. GitHub currently provides 120 core-hours (60 hours in the least-capable image) per month to all users for free. If you elect to run in this or another remote configuration, course staff may be unable to provide support.

CS 186 Spring 2025

Authors: Chris Douglas, Janani Sriram

IntelliJ is currently configured to use the (early access) version of its IDE to connect to the container by default. The EAP version is the beta version of the IDE that is both less stable and on a license which expires after 30-45 days. To disable this, go to Settings > Advanced Settings and uncheck the box "Always use the latest backend" (see for the article).

GitHub in July 2020, which means that your password no longer works for command-line authentication. If asked to authenticate your GitHub account via IntelliJ, create a , which you may use to set up each of your dev containers. Ensure that you save your token securely, as it cannot be accessed again via your account.

Select and click the to create a new dev container.

A runs the build container in Azure, either in a browser or through the VS Code application.

Select and click on "Create Codespace."

development container
quasi-standard
Docker
Ultimate edition
here
link
EAP
here
deprecated password-based authentication
Personal Access Token (PAT)
GitHub Codespace
Screenshot - Uncheck "Always use the latest backend.".png
Screenshot - Select Dev Containers
Screenshot - Select New Dev Container
Screenshot - Add Repository and Branch information