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 likesed
but with interactivitybat
- show file contents likecat
bazel
- Bazelisk, ensuring the correct version of the Bazel build system is usedbtm
- system monitor liketop
dda
- Datadog Agent development CLIdocker
- Docker engine, including thebuildx
andcompose
pluginseza
- list files likels
fd
- find files likefind
fzf
- fuzzy findergfold
- Git status viewer for multiple repositoriesgitui
- Git terminal UIhyperfine
- benchmarking toolkubectl
- Kubernetes control plane CLIjq
- JSON processorpdu
- show disk usage likedu
procs
- process viewer likeps
rg
- search file contents likegrep
yazi
- 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-agent
git dd-clone datadog-agent user/feature
dd-switch
- Emulates the behavior ofgit switch
but 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.
22
for SSH access9000
for thedda
MCP 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: