This project defines a container image to be used as a development environment inside Visual Studio Code through the Remote Dev Container extension.
Devcontainer is a standard to define remote development environments using containers and how editors and IDE's should integrate them. The standard is described here.
First off, you need to use a text editor or IDE who supports devcontainers. The most famous one is Visual Studio Code with the Dev Containers extension installed.
Your project should also define a .devcontainer/devcontainer.json
configuration that is loaded by the extension and then the remote environment
is built, started and attached to.
You can see the grawsp project as an example. You can also read more about how to setup your own development container in Visual Studio Code here.
Example of using this image directly in your .devcontainer/devcontainer.json:
{
"image": "ghcr.io/schubergphilis/devcontainer:1.2.0"
}You can also use it as a base image in your Dockerfile:
FROM ghcr.io/schubergphilis/devcontainer:1.2.0
The image is built on Ubuntu 24.04 (Noble) and bundles the following tools. All binaries are verified with SHA256 checksums at build time.
| Tool | Version | Description |
|---|---|---|
| nvm | 0.40.4 | Node.js version manager |
| pyenv | 2.6.27 | Python version manager |
| rbenv + ruby-build | latest | Ruby version manager |
| goenv | 3.0.1 | Go version manager |
| rustup | latest | Rust toolchain installer (no default toolchain) |
| tenv | 4.10.1 | Version manager for Terraform, OpenTofu, Terragrunt, and Atmos |
| Tool | Version | Description |
|---|---|---|
| tenv | 4.10.1 | Multi-version manager for Terraform / OpenTofu ecosystems |
| terraform-docs | 0.22.0 | Generate documentation from Terraform modules |
| tflint | 0.61.0 | Terraform linter |
| cosign | 3.0.6 | Container image signing and verification |
| Tool | Version | Description |
|---|---|---|
| task | 3.50.0 | Task runner / build tool (Taskfile) |
| uv | 0.11.7 | Fast Python package and project manager |
| hadolint | 2.14.0 | Dockerfile linter |
| checkov | 3.2.521 | Infrastructure-as-code security scanner |
| pre-commit | 4.6.0 | Git pre-commit hook framework |
| Claude CLI | 2.1.104 | Anthropic's Claude Code CLI |
| rtk | 0.38.0 | RTK AI CLI |
| specify-cli | 0.7.3 | Specification toolkit |
| sbp-skills | latest | Schuberg Philis skill extensions for Claude Code |
| pipenv | 2026.6.1 | Python dependency management tool |
| poetry | 2.4.0 | Python packaging and dependency manager |
Contributions are welcome. Please open a pull request or file an issue at schubergphilis/devcontainer.
When updating tool versions in src/Dockerfile, always update the corresponding
ARG/ENV version variable and the SHA256 checksum together. See the
Key conventions section in CLAUDE.md for
further guidance on how this project is structured.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the specific language governing
permissions and limitations under the License.