Developer environment reference¶
The developer environments are container images that use the builders as a base image. These images are only intended for use by the dda env dev command group.
There is currently only one image available:
datadog/agent-dev-env-linux, based on the Linux builder
Editors¶
Images come with the following editors ready for remote development via SSH.
Pre-installed extensions
- bazelbuild.vscode-bazel
- charliermarsh.ruff
- dbaeumer.vscode-eslint
- github.copilot
- github.vscode-github-actions
- golang.go
- ms-azuretools.vscode-docker
- ms-python.python
- ms-vscode.cmake-tools
- redhat.vscode-xml
- redhat.vscode-yaml
- rust-lang.rust-analyzer
- timonwong.shellcheck
- yzhang.markdown-all-in-one
- zxh404.vscode-proto3
Tools¶
The following is a non-exhaustive list of available tools.
ambr- find and replace likesedbut with interactivitybat- show file contents likecatbazel- Bazelisk, ensuring the correct version of the Bazel build system is usedbtm- system monitor liketopdda- Datadog Agent development CLIdocker- Docker engine, including thebuildxandcomposepluginseza- list files likelsfd- find files likefindfzf- fuzzy findergfold- Git status viewer for multiple repositoriesgitui- Git terminal UIhyperfine- benchmarking toolkubectl- Kubernetes control plane CLIjq- JSON processorpdu- show disk usage likeduprocs- process viewer likepsrg- search file contents likegrepyazi- file manager UI
Git¶
Git is configured to use SSH for authentication and, upon start, will use the user.name and user.email global settings from your local machine.
Each of the following subcommands are available via git <subcommand>.
dd-clone- Performs a shallow clone 1 of a Datadog repository to the proper managed location. The first argument is the repository name and a second optional argument is the branch name. Example invocations:git dd-clone datadog-agentgit dd-clone datadog-agent user/feature
dd-switch- Emulates the behavior ofgit switchbut smart enough to handle shallow clones. The branch name is the only argument.
Delta is the default pager which provides, as an example, syntax highlighting for git diff and git log commands.
Repositories¶
Images assume repositories will be cloned to ~/repos. The dd-clone Git extension will clone repositories to this location and gfold is pre-configured to look for repositories in this location.
Shells¶
Images come with shells based on their platform e.g. Zsh for Linux and PowerShell for Windows. Every image comes with Nushell as well.
All shells are pre-configured with Starship prompt and any local configuration will be copied to the container upon start.
Fonts¶
Images come with the following fonts.
All fonts have Nerd Font glyphs, and Noto Emoji is installed for emoji support.
Ports¶
Images expose the following ports.
22for SSH access9000for theddaMCP server
-
A shallow clone by default matches our use case of ephemeral developer environments. If persistence is desired then developers can easily convert the shallow clone to a full clone by running
git fetch --unshallow. More information: