Skip to content

GoogleContainerTools/container-debug-support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f5017c6 · Jan 22, 2025

History

89 Commits
Dec 4, 2024
Nov 26, 2024
Nov 26, 2024
Nov 3, 2021
Dec 8, 2021
Nov 26, 2024
Nov 26, 2024
Jun 18, 2018
Feb 6, 2022
Jun 8, 2018
Feb 6, 2022
Jan 22, 2025
Apr 13, 2021
Nov 23, 2021
Apr 13, 2021

Repository files navigation

experimental

Container Runtime Debugging Support Images (aka Duct Tape)

This repository defines a set of container images that package the language runtime dependencies required to enable step-by-step debugging of apps with skaffold debug. These container images are suitable for use as initContainers on a pod. When executed, each container image copies these dependencies to /dbg/<runtimeId>.

The idea is that skaffold debug will transform k8s manifests to make available any support files required to debug specific language runtimes. For example, a Kubernetes podspec would be transformed to

  • create a volume to hold the debugging support files
  • run one or more of these images as initContainers to populate this volume, mounted as /dbg
  • mount this volume on the applicable containers as /dbg with suitably transformed command-line in the entrypoint and arguments

Current language runtimes:

  • go: provides Delve
  • python: provides ptvsd, a debug adapter that can be used for VS Code and more, for Python 2.7 and 3.5+
  • nodejs: provides a node wrapper that propagates --inspect args to the application invokation
  • netcore: provides vsdbg for .NET Core

Distribution

The latest released images, which are used by skaffold debug, are available at:

gcr.io/k8s-skaffold/skaffold-debug-support

Images from a particular release are available at:

gcr.io/k8s-skaffold/skaffold-debug-support/<release>

Images from the latest commit to HEAD are available at our staging repository:

us-central1-docker.pkg.dev/k8s-skaffold/skaffold-staging/skaffold-debug-support

You can configure Skaffold to use a specific release or the staging repository with the following:

skaffold config set --global debug-helpers-registry <repository>

Contributing

See CONTRIBUTING for how to contribute!