Documentation
¶
Index ¶
- type ConnectionInfo
- type DockerAdapter
- type DockerBridge
- type DockerExecutor
- func (d *DockerExecutor) Destruction(ctx context.Context) error
- func (d *DockerExecutor) GetContainerID() string
- func (d *DockerExecutor) GetInstanceId() string
- func (d *DockerExecutor) GetRuntimeInfo() map[string]any
- func (d *DockerExecutor) GetType() string
- func (d *DockerExecutor) Prepare(ctx context.Context) error
- func (d *DockerExecutor) TestConnection(ctx context.Context) (*ConnectionInfo, error)
- func (d *DockerExecutor) Transfer(ctx context.Context, resultChan chan<- any, commandChan <-chan any, ...)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnectionInfo ¶ added in v0.3.1
type ConnectionInfo struct {
ServerVersion string `json:"serverVersion"` // daemon 的 Docker 版本
APIVersion string `json:"apiVersion"` // 协商后的 API 版本
OS string `json:"os"` // daemon 所在操作系统
Arch string `json:"arch"` // daemon 架构
Name string `json:"name"` // daemon 节点名
LatencyMs int64 `json:"latencyMs"` // Ping 往返耗时(毫秒)
}
ConnectionInfo Docker daemon 连接测试结果 用于 studio 等调用方的「连接状态测试」功能,不创建容器,仅探测 daemon 可达性。
func TestConnectionWithConfig ¶ added in v0.3.1
TestConnectionWithConfig 按配置项构造一个临时 Docker 执行器并测试 daemon 连接。 config 支持的键与 DockerAdapter 一致(host/tlsVerify/certPath 等,与连接无关的 image/network/volumes 等会被忽略)。不创建容器,调用方无需 Prepare/Destruction。
type DockerAdapter ¶
type DockerAdapter struct {
// contains filtered or unexported fields
}
DockerAdapter Docker适配器实现
func (*DockerAdapter) Config ¶
Config 配置适配器 支持的配置项:
- host: Docker daemon 地址 string(如 "tcp://192.168.1.10:2375"、"ssh://user@host"; 未设置时读取环境变量 DOCKER_HOST,默认本机 unix socket)
- tlsVerify: 是否对 daemon 连接启用 TLS 校验 bool(配合 host 使用)
- certPath: TLS 证书目录 string(含 ca.pem/cert.pem/key.pem,默认 "~/.docker")
- image: 容器镜像 string(未设置时默认 "alpine:latest";studio 展开器会把节点的 image 字段注入到该执行器条目的 config.image,使节点声明镜像真正生效)
- registry: 镜像仓库地址
- network: Docker网络模式
- volumes: 卷挂载列表 []string{"/host:/container"}(注意:远程 daemon 时为远端机器路径)
- workdir: 工作目录
- env: 环境变量 map[string]string
- tty: 是否启用 TTY 模式 bool
- ttyWidth: TTY 终端宽度 int(默认 80)
- ttyHeight: TTY 终端高度 int(默认 24)
- daemonTimeout: daemon 控制面请求响应超时(如 "15s" 或秒数 int/float, 默认 15s)。host 能 TCP 连上但 daemon 不响应时,无超时的请求会永久挂起, 节点停在 running;设置后此类异常在超时后快速失败。只限制响应头等待, 不影响镜像拉取流/exec attach 长连接的响应体读取。
type DockerExecutor ¶
type DockerExecutor struct {
// contains filtered or unexported fields
}
DockerExecutor Docker执行器实现
func NewDockerExecutor ¶
func NewDockerExecutor() (*DockerExecutor, error)
NewDockerExecutor 创建新的Docker执行器
client 不在此处创建,而是在 Prepare 时惰性创建(ensureClient): 此时 adapter 配置(host/tlsVerify/certPath 等)已应用完毕, 才能决定连接哪个 daemon。未配置 host 时回退到环境变量(FromEnv), 与历史行为一致。
func NewDockerExecutorWithClient ¶
func NewDockerExecutorWithClient(cli *client.Client) *DockerExecutor
NewDockerExecutorWithClient 使用指定的Docker客户端创建执行器
func (*DockerExecutor) Destruction ¶
func (d *DockerExecutor) Destruction(ctx context.Context) error
Destruction 销毁Docker环境 停止并删除容器
func (*DockerExecutor) GetContainerID ¶
func (d *DockerExecutor) GetContainerID() string
GetContainerID 获取容器ID
func (*DockerExecutor) GetInstanceId ¶
func (d *DockerExecutor) GetInstanceId() string
GetInstanceId 获取实例ID(容器ID)
func (*DockerExecutor) GetRuntimeInfo ¶
func (d *DockerExecutor) GetRuntimeInfo() map[string]any
GetRuntimeInfo 获取运行时信息
func (*DockerExecutor) Prepare ¶
func (d *DockerExecutor) Prepare(ctx context.Context) error
Prepare 准备Docker环境 1. 检查/拉取镜像 2. 创建并启动容器
func (*DockerExecutor) TestConnection ¶ added in v0.3.1
func (d *DockerExecutor) TestConnection(ctx context.Context) (*ConnectionInfo, error)
TestConnection 测试与 Docker daemon 的连接状态。 只做 Ping + ServerVersion,不拉取镜像也不创建容器;失败时返回带原因的 error。