Skip to main content
Push container images to your organization’s private registry on Control Plane. Use Docker, the CLI, or any Docker-compatible client.

When to use this

CI/CD pipelines

Build and push images in automated pipelines

Local development

Push locally-built images for testing

Private registry

Store images in your org’s secure registry

No Dockerfile

Build automatically with buildpacks

Prerequisites

Install the Control Plane CLI. See Installation.
Install Docker with the Buildx plugin enabled.
You need push permission on images. See Image Permissions.
Starting with CLI v3.7.2, cpln image build requires Docker Buildx.Verify Buildx is available:
docker buildx version
If not installed, add the plugin:
BUILDX_VERSION=v0.29.1
curl -sSL "https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64" \
  | install -m 0755 -D /dev/stdin ~/.docker/cli-plugins/docker-buildx

Build and push

Reference images in workloads

Once pushed, reference your images in workloads using the Control Plane image link format.
Important: Do not use the Docker registry path (org.registry.cpln.io/...) in workload configurations. Always use the Control Plane image link format shown below.
Shorthand format (recommended):
//image/IMAGE_NAME:TAG
Full format:
/org/ORG_NAME/image/IMAGE_NAME:TAG
Example workload configuration:
containers:
  - name: my-container
    image: //image/my-app:v1
Or with the full path:
containers:
  - name: my-container
    image: /org/my-org/image/my-app:v1
In the console, press Ctrl+I when configuring a workload to browse available images.

Common workflows

Build and deploy

# Build and push (Authenticates automatically)
cpln image build --name my-app:v1.2.3 --push

# Update workload
cpln workload update my-app --set spec.containers<container-name>.image=//image/my-app:v1.2.3

CI/CD pipeline

# Build and push (Authenticates automatically)
cpln image build --name my-app:$CI_COMMIT_SHA --push

# Deploy (has the new image defined in the workload manifest container)
cpln apply --file workload.yaml

Troubleshooting

For common issues with building and pushing images, see Images Troubleshooting.

Next steps