Skip to content

Getting Started

Each feature is published to the GitHub Container Registry. Add features to your devcontainer.json:

{
"image": "registry.access.redhat.com/ubi9/ubi:latest",
"features": {
"ghcr.io/infrashift/trusted-devcontainer-features/git:latest": {},
"ghcr.io/infrashift/trusted-devcontainer-features/nodejs:latest": {
"target_version": "22.16.0"
},
"ghcr.io/infrashift/trusted-devcontainer-features/python:latest": {
"target_version": "3.12"
}
}
}

Most features accept options to pin versions or provide checksums. Check each feature’s reference page for available options.

{
"features": {
"ghcr.io/infrashift/trusted-devcontainer-features/golang:latest": {
"target_version": "1.26.0",
"target_checksum": "aac1b08a0fb0c4e0a7c1555beb7b59180b05dfc5a3d62e40e9de90cd42f88235"
}
}
}

Some features depend on others. The Dev Container runtime handles ordering automatically via installsAfter declarations. Key dependency chains:

FeatureDepends On
git-lfsgit
npm, pnpmnodejs
pythonuv-ruff
ansible-corepython
cuelanggolang
claude-code, openai-codexbun

You don’t need to worry about installation order — just declare the features you need and the runtime resolves the dependency graph.

These features are designed for Red Hat UBI 9. For the best experience, use a Containerfile that sets up a non-root vscode user:

FROM registry.access.redhat.com/ubi9/ubi:latest
RUN groupadd --gid 1000 vscode \
&& useradd -m -s /bin/bash --uid 1000 --gid 1000 vscode
# UV is required as the feature bootstrapper
RUN curl -LsSf https://astral.sh/uv/install.sh | env INSTALLER_NO_MODIFY_PATH=1 UV_INSTALL_DIR=/usr/local/bin sh

Use the provided Makefile to test features locally:

Terminal window
# Test a single feature
make test-feature FEATURE=jq
# Test scenarios for a feature with dependencies
make test-scenarios FEATURE=claude-code
# Run all tests
make test