A simple, all-in-one dev container for developing open-source projects with quick setup.
- Install Docker Engine/Desktop
- Install Visual Studio Code
-
Install the Dev Containers extension
- Open VS Code
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Type
Extensions: Install Extensions - Search for
ms-vscode-remote.remote-containersand install it
-
Open this project in a container
- Clone this repository
- Open the folder in VS Code
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Select
Dev Containers: Reopen in Container - Wait for the container to build (first time takes a few minutes)
-
Start developing
- Your projects should be stored in
/home/codespace/projectsinside the container - Press
Ctrl+Shift+Pand use "File: Open Folder" to navigate to/home/codespace/projects - Happy coding!
- Your projects should be stored in
| Step | Command | User | User determined by | When |
|---|---|---|---|---|
initializeCommand |
cp -n .env.template .env && cp -n allowed-domains.txt.template allowed-domains.txt |
host user | host OS | before container starts |
| container start | sleep infinity |
codespace | USER in Dockerfile |
container boot |
postCreateCommand |
.devcontainer/init.sh |
codespace | remoteUser in devcontainer.json |
first create only |
postStartCommand |
sudo docker-init.sh && sudo firewall.sh allowed-domains.txt |
codespace → root | remoteUser + sudo |
every start |
| VS Code connects | — | codespace | remoteUser in devcontainer.json |
after postStartCommand |
| Name | Tag | Purpose |
|---|---|---|
| Containers | ms-azuretools.vscode-containers |
Container orchestration |
| Data Wrangler | ms-toolsai.datawrangler |
Data viewing and manipulation |
| GitHub | github.vscode-pull-request-github |
Manage PRs and issues without leaving the IDE |
| Google Colab | google.colab |
Remote notebook execution with GPU support |
| Jupyter | ms-toolsai.jupyter |
Interactive coding notebooks |
| LaTeX Workshop | james-yu.latex-workshop |
LaTeX editing, preview, and compilation |
| Python | ms-python.python |
Python language support and debugging |
- Persistent folders: The O3S workspace (
/home/codespace/O3S) and your projects folder (/home/codespace/projects) are preserved across container rebuilds - Docker volumes: If you delete the volume, all data in
/home/codespace/projectswill be lost - Recommendation: Regularly commit and push your work to Git repositories
