The docker command provides utilities for building, tagging, and pushing Docker images to container registries. This command automatically parses registry information from your deployment configuration and supports both Docker Hub and custom registries.

build-push

Build, tag, and push a Docker image for your agent deployment. This command reads configuration from your pcc-deploy.toml file to automatically determine registry settings, image names, and versions. Usage:
pcc docker build-push [ARGS] [OPTIONS]
Arguments:
agent-name
string
Name of the agent to build image for. If not provided, uses the agent_name from your pcc-deploy.toml file.
Registry Configuration:
--registry / -r
string
Registry type to push to. Supported values: dockerhub, custom. When not specified, automatically detected from the image field in your pcc-deploy.toml file.
--username / -u
string
Registry username for authentication. When not specified, automatically parsed from the image field in your pcc-deploy.toml file (e.g., myusername from myusername/app:1.0).
--registry-url
string
Custom registry URL (required for custom registries). When not specified, automatically parsed from the image field for custom registries (e.g., gcr.io from gcr.io/project/app:1.0).
Build Configuration:
--version / -v
string
Version tag for the image. When not specified, automatically extracted from the image field in your pcc-deploy.toml file (e.g., 1.0 from myusername/app:1.0).
--no-push
boolean
default:"false"
Build and tag only, do not push to registry. Useful for local testing or when you want to push manually later.
--no-latest
boolean
default:"false"
Do not tag the image as latest. By default, images are tagged with both the specified version and latest.

Configuration

The docker build-push command reads configuration from your pcc-deploy.toml file to minimize required command-line arguments. Here’s how different registry setups work:

Docker Hub (Default)

For Docker Hub repositories, the minimal configuration is:
agent_name = "my-agent"
image = "myusername/my-agent:1.0"
This automatically configures:
  • Registry: dockerhub
  • Username: myusername
  • Agent name: my-agent
  • Version: 1.0

Custom Registry

For custom registries like Google Container Registry, AWS ECR, or private registries:
agent_name = "my-agent"
image = "gcr.io/my-project/my-agent:1.0"
This automatically configures:
  • Registry: custom
  • Registry URL: gcr.io
  • Username/Project: my-project
  • Agent name: my-agent
  • Version: 1.0

Docker Configuration Section

For advanced configuration, add a [docker] section:
agent_name = "my-agent"
image = "myusername/my-agent:1.0"

[docker]
auto_latest = false  # Don't tag as 'latest'
Available [docker] options:
auto_latest
boolean
default:"true"
Whether to automatically tag the image as latest in addition to the specified version.

Examples

With a properly configured pcc-deploy.toml:
# Build and push using all configuration from pcc-deploy.toml
pcc docker build-push

Override Version

# Use a different version than what's in pcc-deploy.toml
pcc docker build-push --version 2.0

Build Only

# Build and tag locally without pushing
pcc docker build-push --no-push

Different Registry

# Override registry settings for one-time builds
pcc docker build-push --registry custom --registry-url my-registry.com --username myuser

Skip Latest Tag

# Only tag with the specific version, not 'latest'
pcc docker build-push --no-latest

Platform Support

All images are built for the linux/arm64 platform, which is required for Pipecat Cloud deployments. This is automatically configured and cannot be changed.

Error Handling

The command provides helpful error messages for common issues:
  • Authentication errors: Suggests the appropriate docker login command
  • Missing Dockerfile: Indicates that a Dockerfile must be present in the current directory
  • Registry access issues: Provides guidance on checking permissions and authentication