command: docker buildx dap build short: Start a build long: |- Start a debug session using the [debug adapter protocol](https://microsoft.github.io/debug-adapter-protocol/overview) to communicate with the debugger UI. Arguments are the same as the `build` > [!NOTE] > `buildx dap build` command may receive backwards incompatible features in the future > if needed. We are looking for feedback on improving the command and extending > the functionality further. usage: docker buildx dap build [OPTIONS] PATH | URL | - pname: docker buildx dap plink: docker_buildx_dap.yaml options: - option: add-host value_type: stringSlice default_value: '[]' description: 'Add a custom host-to-IP mapping (format: `host:ip`)' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: allow value_type: stringArray default_value: '[]' description: | Allow extra privileged entitlement (e.g., `network.host`, `security.insecure`, `device`, `buildx.local.delete`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: annotation value_type: stringArray default_value: '[]' description: Add annotation to the image deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: attest value_type: stringArray default_value: '[]' description: 'Attestation parameters (format: `type=sbom,generator=image`)' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: build-arg value_type: stringArray default_value: '[]' description: Set build-time variables deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: build-context value_type: stringArray default_value: '[]' description: Additional build contexts (e.g., name=path) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cache-from value_type: stringArray default_value: '[]' description: | External cache sources (e.g., `user/app:cache`, `type=local,src=path/to/dir`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cache-to value_type: stringArray default_value: '[]' description: | Cache export destinations (e.g., `user/app:cache`, `type=local,dest=path/to/dir`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: call value_type: string default_value: build description: Set method for evaluating build (`check`, `outline`, `targets`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: cgroup-parent value_type: string description: Set the parent cgroup for the `RUN` instructions during build deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: check value_type: bool description: Shorthand for `--call=check` deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: compress value_type: bool default_value: "false" description: Compress the build context using gzip deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-period value_type: string description: Limit the CPU CFS (Completely Fair Scheduler) period deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-quota value_type: string description: Limit the CPU CFS (Completely Fair Scheduler) quota deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpu-shares shorthand: c value_type: string description: CPU shares (relative weight) deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpuset-cpus value_type: string description: CPUs in which to allow execution (`0-3`, `0,1`) deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: cpuset-mems value_type: string description: MEMs in which to allow execution (`0-3`, `0,1`) deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: file shorthand: f value_type: string description: 'Name of the Dockerfile (default: `PATH/Dockerfile`)' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: force-rm value_type: bool default_value: "false" description: Always remove intermediate containers deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: iidfile value_type: string description: Write the image ID to a file deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: isolation value_type: string description: Container isolation technology deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: label value_type: stringArray default_value: '[]' description: Set metadata for an image deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: load value_type: bool default_value: "false" description: Shorthand for `--output=type=docker` deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: memory shorthand: m value_type: string description: Memory limit deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: memory-swap value_type: string description: | Swap limit equal to memory plus swap: `-1` to enable unlimited swap deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: metadata-file value_type: string description: Write build result metadata to a file deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: network value_type: string default_value: default description: Set the networking mode for the `RUN` instructions during build deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: no-cache value_type: bool default_value: "false" description: Do not use cache when building the image deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: no-cache-filter value_type: stringArray default_value: '[]' description: Do not cache specified stages deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: output shorthand: o value_type: stringArray default_value: '[]' description: 'Output destination (format: `type=local,dest=path`)' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: platform value_type: stringArray default_value: '[]' description: Set target platform for build deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: policy value_type: stringArray default_value: '[]' description: | Policy configuration (format: `filename=path[,filename=path][,reset=true|false][,disabled=true|false][,strict=true|false][,log-level=level]`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: print value_type: string description: Print result of information request (e.g., outline, targets) deprecated: false hidden: true experimental: false experimentalcli: true kubernetes: false swarm: false - option: progress value_type: string default_value: auto description: | Set type of progress output (`auto`, `none`, `plain`, `quiet`, `rawjson`, `tty`). Use plain to show container output deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: provenance value_type: string description: Shorthand for `--attest=type=provenance` deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: pull value_type: bool default_value: "false" description: Always attempt to pull all referenced images deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: push value_type: bool default_value: "false" description: Shorthand for `--output=type=registry,unpack=false` deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: quiet shorthand: q value_type: bool default_value: "false" description: Suppress the build output and print image ID on success deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: resource value_type: stringArray default_value: '[]' description: | Resource limits for build containers (format: `memory=2g`, `cpu-quota=50000`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: rm value_type: bool default_value: "true" description: Remove intermediate containers after a successful build deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: sbom value_type: string description: Shorthand for `--attest=type=sbom` deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: secret value_type: stringArray default_value: '[]' description: | Secret to expose to the build (format: `id=mysecret[,src=/local/secret]`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: security-opt value_type: stringSlice default_value: '[]' description: Security options deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: shm-size value_type: bytes default_value: "0" description: Shared memory size for build containers deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: squash value_type: bool default_value: "false" description: Squash newly built layers into a single new layer deprecated: false hidden: true experimental: false experimentalcli: true kubernetes: false swarm: false - option: ssh value_type: stringArray default_value: '[]' description: | SSH agent socket or keys to expose to the build (format: `default|[=|[,]]`) deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: tag shorthand: t value_type: stringArray default_value: '[]' description: 'Image identifier (format: `[registry/]repository[:tag]`)' deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: target value_type: string description: Set the target build stage to build deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: ulimit value_type: ulimit default_value: '[]' description: Ulimit options deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false inherited_options: - option: builder value_type: string description: Override the configured builder instance deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: debug shorthand: D value_type: bool default_value: "false" description: Enable debug logging deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false examples: |- ### Launch request arguments {#launch-config} The following [launch request arguments](https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Launch) are supported. These are sent as a JSON body as part of the launch request. | Name | Type | Default | Description | |:--------------------|:--------------|:-------------|:-----------------------------------------------------------------------------| | `dockerfile` | `string` | `Dockerfile` | Name of the Dockerfile | | `contextPath` | `string` | `.` | Set the context path for the build (normally the first positional argument) | | `target` | `string` | | Set the target build stage to build | | `stopOnEntry` | `boolean` | `false` | Stop on the first instruction | ### Additional Arguments {#additional-args} Command line arguments may be passed to the debug adapter the same way they would be passed to the normal build command and they will set the value. Launch request arguments that are set will override command line arguments if they are present. A debug extension should include an `args` and `builder` entry in the launch configuration. These will modify the arguments passed to the binary for the tool invocation. `builder` will add `--builder ` directly after the executable and `args` will append to the end of the tool invocation. For example, a launch configuration in Visual Studio Code with the following: ```json { "args": ["--build-arg", "FOO=AAA"] "builder": ["mybuilder"] } ``` This should cause the debug adapter to be invoked as `docker buildx --builder mybuilder dap build --build-arg FOO=AAA`. deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false