interface DockerConfig {
/** Connection to the Docker daemon (exactly what dockerode accepts). Defaults to socket / DOCKER_HOST. */
connection?: DockerConnection;
/** Default image runtime identifier, e.g. 'python' or 'node'. Defaults to 'python'. */
runtime?: string;
/** Reported timeout in ms. Defaults to 300000 (5 minutes). */
timeout?: number;
/** Default image & pull policy for sandboxes. Defaults to python:3.11-slim / ifNotPresent. */
image: DockerImage;
/** Declarative container defaults (workdir, env, ports, resources, etc.). */
container?: ContainerDefaults;
/** Raw dockerode container create options merged last. */
createOptions?: ContainerCreateOptions;
/** Raw dockerode container start options. */
startOptions?: ContainerStartOptions;
/** When the provider should clean up containers it created ('always' | 'onSuccess' | 'never'). */
cleanup?: CleanupPolicy;
/** Stream container logs. Defaults to false. */
streamLogs?: boolean;
}
interface DockerImage {
/** Image reference, e.g. 'python:3.11-slim'. */
name: string;
/** Pull strategy: 'always' | 'ifNotPresent' | 'never'. Defaults to 'ifNotPresent'. */
pullPolicy?: PullPolicy;
/** Auth for pulling private images (Engine API AuthConfig shape). */
auth?: RegistryAuth;
}