---
title: Debugging the Local Docker Image
description: Developer guide for attaching VS Code debuggers to Charon running in Docker containers.
---

## Debugging the Local Docker Image

Use the `charon:local` image as the source of truth and attach VS Code debuggers directly to the running container. Backwards-compatibility: `cpmp:local` still works (fallback).

### 1. Enable the debugger

The image now ships with the Delve debugger. When you start the container, set `CHARON_DEBUG=1` (and optionally `CHARON_DEBUG_PORT`) to enable Delve. For backward compatibility you may still use `CPMP_DEBUG`/`CPMP_DEBUG_PORT`.

```bash
docker run --rm -it \
  --name charon-debug \
  -p 8080:8080 \
  -p 2345:2345 \
  -e CHARON_ENV=development \
  -e CHARON_DEBUG=1 \
  charon:local
```

Delve will listen on `localhost:2345`, while the UI remains available at `http://localhost:8080`.

## 2. Attach VS Code

- Use the **Attach to Charon backend** configuration in `.vscode/launch.json` to connect the Go debugger to Delve.
- Use the **Open Charon frontend** configuration to launch Chrome against the management UI.

These launch configurations assume the ports above are exposed. If you need a different port, set `CHARON_DEBUG_PORT` (or `CPMP_DEBUG_PORT` for backward compatibility) when running the container and update the Go configuration's `port` field accordingly.
