Automated Docker environment setup for C++ development with cross-platform support. Originally created for CS 3505 at the University of Utah, this tool provides a consistent development environment across macOS, Windows, and Linux.
- Automated Setup: One-script installation creates necessary file structure and Docker configuration
- Persistent Storage: Automatic volume mounting for saving coursework between sessions
- Complete Toolchain: Pre-configured with make, gcc, gdb, git, vim/nano, and bash-completion
- Cross-Platform: Works seamlessly on macOS, Windows (via WSL), and Linux
- VSCode Integration: Built-in Remote-Containers support for streamlined development
- WSL (Windows Subsystem for Linux)
- CPU virtualization enabled in BIOS
Note: The
setup.ps1script will install WSL automatically, but you must enable CPU virtualization in your BIOS first.
- Install Docker Desktop, VSCode, and Remote-Containers extension
- Enable CPU virtualization in BIOS settings
- Run the setup script in PowerShell:
.\setup.ps1
- VSCode will launch automatically. Press
F1and run:Remote-Containers: Open Configuration File... - Select
From 'Dockerfile' - Click "Reopen in Container" when prompted
- Install Docker Desktop, VSCode, and Remote-Containers extension
- Make the setup script executable:
chmod +x setup.sh
- Run the setup script:
./setup.sh
- VSCode will launch automatically. Press
F1and run:Remote-Containers: Open Configuration File... - Select
From 'Dockerfile' - Click "Reopen in Container" when prompted
- Install Docker Desktop (if necessary), VSCode, and Remote-Containers extension
- Make the setup script executable:
chmod +x setup.sh
- Run the setup script:
./setup.sh
- VSCode will launch automatically. Press
F1and run:Remote-Containers: Open Configuration File... - Select
From 'Dockerfile' - Click "Reopen in Container" when prompted
To confirm you're working inside the Docker container, open a terminal in VSCode. You should see:
root@<container-id>
The setup script creates an assignments folder at:
- Windows:
Documents\DockerImages\assignments - macOS/Linux:
~/Documents/DockerImages/assignments
All files saved in this folder persist between container sessions.
- Open the
assignmentsfolder in VSCode - Press
F1and run:Remote-Containers: Open Configuration File... - Select
From 'Dockerfile' - Verify you're in the container by checking the terminal prompt
Dockerfile or .devcontainer folder contents
✅ Always save work inside the assignments folder for persistence
🔍 Verify container status by checking the terminal prompt shows root@<container-id>
- Compiler: GCC
- Debugger: GDB
- Build System: Make
- Version Control: Git
- Editors: Vim, Nano
- Shell: Bash with completion support
linux docker cpp vscode dockerfile docker-image shell-scripts