| docker_container_exec |
function |
go |
infra |
1.0.0 |
impure |
func DockerContainerExec(opts DockerExecOpts) (DockerExecResult, error) |
Exec comando dentro de container Docker con whitelist obligatoria de binarios. SIN shell expansion. Stream demuxado stdout/stderr. Timeout context-cancellable. Capability docker.container.exec del device_agent. |
| docker |
| docker-agent |
| exec |
| security |
| infra |
|
|
| docker_exec_result_go_infra |
| error_go_core |
|
| docker_exec_result_go_infra |
|
false |
error_go_core |
| bytes |
| context |
| encoding/json |
| fmt |
| io |
| net/http |
| strings |
| time |
|
| name |
desc |
| opts.ContainerID |
ID o nombre del container destino. Obligatorio. |
|
| name |
desc |
| opts.Cmd |
argv del comando. Cmd[0] es el binario a ejecutar; debe estar en BinariesAllowed. Sin shell expansion. |
|
| name |
desc |
| opts.BinariesAllowed |
Whitelist exacta de binarios permitidos. EMPTY = rechaza todo sin contactar el engine. Security-critical. |
|
| name |
desc |
| opts.User |
Usuario/grupo en formato UID:GID (ej: '1000:1000'). Vacio = default del container. |
|
| name |
desc |
| opts.WorkingDir |
Directorio de trabajo dentro del container. Vacio = default del container. |
|
| name |
desc |
| opts.Env |
Variables de entorno adicionales en formato KEY=VAL. Combinadas con las del container. |
|
| name |
desc |
| opts.TimeoutSeconds |
Timeout de la operacion completa en segundos. Default 30 si es 0 o negativo. |
|
| name |
desc |
| opts.DockerHost |
Socket Docker. Default 'unix:///var/run/docker.sock'. Soporta 'unix://', 'tcp://', 'http://'. |
|
|
DockerExecResult{ExitCode, Stdout, Stderr, Duration} con el resultado completo del comando ejecutado. |
true |
| binario en whitelist exitcode 0 stdout stderr capturados |
| binario NO en whitelist error sin contactar engine |
| whitelist vacia rechaza todo |
| timeout simulado |
|
functions/infra/docker_container_exec_test.go |
functions/infra/docker_container_exec.go |