mirror of https://github.com/docker/docs.git
81 lines
1.9 KiB
Markdown
81 lines
1.9 KiB
Markdown
---
|
|
title: "Interface: ExtensionVM"
|
|
description: Docker extension API reference
|
|
keywords: Docker, extensions, sdk, API, reference
|
|
aliases:
|
|
- /desktop/extensions-sdk/dev/api/reference/interfaces/ExtensionVM/
|
|
- /extensions/extensions-sdk/dev/api/reference/interfaces/ExtensionVM/
|
|
---
|
|
|
|
**`Since`**
|
|
|
|
0.2.0
|
|
|
|
## Properties
|
|
|
|
### cli
|
|
|
|
• `Readonly` **cli**: [`ExtensionCli`](ExtensionCli.md)
|
|
|
|
Executes a command in the backend container.
|
|
|
|
Example: Execute the command `ls -l` inside the backend container:
|
|
|
|
```typescript
|
|
await ddClient.extension.vm.cli.exec(
|
|
"ls",
|
|
["-l"]
|
|
);
|
|
```
|
|
|
|
Streams the output of the command executed in the backend container.
|
|
|
|
When the extension defines its own `compose.yaml` file
|
|
with multiple containers, the command is executed on the first container defined.
|
|
Change the order in which containers are defined to execute commands on another
|
|
container.
|
|
|
|
Example: Spawn the command `ls -l` inside the backend container:
|
|
|
|
```typescript
|
|
await ddClient.extension.vm.cli.exec("ls", ["-l"], {
|
|
stream: {
|
|
onOutput(data): void {
|
|
// As we can receive both `stdout` and `stderr`, we wrap them in a JSON object
|
|
JSON.stringify(
|
|
{
|
|
stdout: data.stdout,
|
|
stderr: data.stderr,
|
|
},
|
|
null,
|
|
" "
|
|
);
|
|
},
|
|
onError(error: any): void {
|
|
console.error(error);
|
|
},
|
|
onClose(exitCode: number): void {
|
|
console.log("onClose with exit code " + exitCode);
|
|
},
|
|
},
|
|
});
|
|
```
|
|
|
|
**`Param`**
|
|
|
|
Command to execute.
|
|
|
|
**`Param`**
|
|
|
|
Arguments of the command to execute.
|
|
|
|
**`Param`**
|
|
|
|
The callback function where to listen from the command output data and errors.
|
|
|
|
___
|
|
|
|
### service
|
|
|
|
• `Optional` `Readonly` **service**: [`HttpService`](HttpService.md)
|