Portal Community

Output Ports

All 31 operations share the same two output ports.

PortTrigger ConditionDescription
success Docker API returned 2xx The operation completed successfully. Output data is available in the node's output object and can be referenced in downstream expressions.
error Docker API error or connection failure The operation failed. The error object includes errorCode, message, and httpStatus. Route to an alert or retry node as needed.

Common Error Codes

Error CodeDescriptionTypical Operations
ContainerNotFound The specified container ID or name does not exist on the connected Docker daemon. Verify the ID is correct and the container has not been removed. container/*
ImageNotFound The specified image ID or name is not present in local image storage. Pull the image first using image/pull before referencing it in container/create. image/*, container/create
DaemonUnreachable BizFirst could not establish a connection to the Docker daemon at the configured DockerHost. Check the socket path, TCP address, TLS certificates, and firewall rules. All operations
PermissionDenied The BizFirst workflow runner process does not have permission to access the Docker socket or the TLS credentials are invalid. Ensure the runner user is in the docker group or the socket permissions are set correctly. All operations
PortAlreadyInUse The host port specified in PortBindings is already bound by another process or container. Use a different host port or stop the conflicting container. container/create, container/start

Operation Output Schemas

container/create

FieldTypeDescription
containerIdstringThe full 64-character container ID assigned by the Docker daemon.
namestringThe container name (prefixed with / by Docker, e.g. /my-app).
statusstringInitial container status. Will be created immediately after creation before container/start is called.
warningsarrayArray of warning strings returned by the Docker daemon during creation (e.g. deprecated API usage). Empty array when none.
{
  "containerId": "a3f8c2e1b0d94f5e6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f",
  "name": "/my-app-container",
  "status": "created",
  "warnings": []
}

container/exec

FieldTypeDescription
exitCodeintegerExit code returned by the executed command. 0 indicates success. Non-zero indicates an error condition in the executed program.
stdoutstringStandard output captured from the command execution. Empty string if the command produced no output.
stderrstringStandard error captured from the command execution. Contains error messages when exitCode is non-zero.
{
  "exitCode": 0,
  "stdout": "Applying 3 migrations...\nMigration 0012_add_user_preferences applied.\nMigration 0013_create_audit_log applied.\nMigration 0014_add_indexes applied.\nDone.",
  "stderr": ""
}

container/logs

FieldTypeDescription
logsstringCombined stdout and stderr log content as a single string. Lines are separated by newline characters.
lineCountintegerTotal number of lines returned. Reflects the Tail limit if set, otherwise the total available log lines.
{
  "logs": "2026-05-23T08:00:01Z Starting server on port 8080\n2026-05-23T08:00:02Z Database connection established\n2026-05-23T08:00:15Z Health check passed",
  "lineCount": 3
}

container/stats

FieldTypeDescription
cpuPercentfloatCurrent CPU usage as a percentage of total available CPU across all cores.
memoryUsageMBfloatCurrent memory consumed by the container in megabytes.
memoryLimitMBfloatMemory limit configured for the container in megabytes. Returns host total memory if no limit is set.
networkRxMBfloatTotal megabytes received over the network interface since container start.
networkTxMBfloatTotal megabytes transmitted over the network interface since container start.
{
  "cpuPercent": 12.4,
  "memoryUsageMB": 248.6,
  "memoryLimitMB": 1024.0,
  "networkRxMB": 14.2,
  "networkTxMB": 3.8
}

image/pull

FieldTypeDescription
imageNamestringThe fully qualified image repository name that was pulled (e.g. nginx, myregistry.io/app).
tagstringThe resolved tag for the pulled image.
digeststringThe content-addressable SHA256 digest of the pulled image manifest. Use this for deterministic references in subsequent operations.
sizeintegerUncompressed image size in bytes.
{
  "imageName": "nginx",
  "tag": "1.25",
  "digest": "sha256:a3e7c2f1b9d84e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9",
  "size": 187654321
}

system/info

FieldTypeDescription
dockerVersionstringDocker engine version string (e.g. 24.0.7).
osTypestringHost operating system type as reported by the daemon (e.g. linux).
architecturestringCPU architecture of the Docker host (e.g. x86_64, aarch64).
totalCpusintegerNumber of CPU cores available to the Docker daemon.
totalMemoryMBintegerTotal system memory available to the Docker daemon in megabytes.
{
  "dockerVersion": "24.0.7",
  "osType": "linux",
  "architecture": "x86_64",
  "totalCpus": 8,
  "totalMemoryMB": 16384
}

Accessing Output in Downstream Nodes

Expression reference: Use the node name to reference output fields in downstream expressions. For example, if a container/create node is named createApp and a container/exec node is named runMigration:

{{ nodes.createApp.output.containerId }} — Container ID from create
{{ nodes.runMigration.output.exitCode }} — Exit code from exec
{{ nodes.runMigration.output.stdout }} — Stdout from exec
{{ nodes.pullImage.output.digest }} — Image digest from pull