Skip to main content
The CLI provides powerful commands for working with container images. Build locally, push to your org’s private registry, pull from external registries, and copy images between organizations.

Quick reference

CommandDescription
cpln image buildBuild and optionally push images
cpln image docker-loginAuthenticate Docker to your org’s registry
cpln image getList or view images in your org
cpln image copyCopy images between organizations
cpln image deleteDelete images from your registry

Build and push images

The most common workflow is building and pushing a local application:
cpln image build --name my-app:v1 --push
This command:
  1. Builds your image using the Dockerfile in the current directory
  2. Tags it for your org’s private registry
  3. Pushes it to your-org.registry.cpln.io/my-app:v1

Build options

# Build from current directory
cpln image build --name my-app:v1 --push

# Specify a Dockerfile
cpln image build --name my-app:v1 --dockerfile ./docker/Dockerfile.prod --push

Use images in workloads

Reference your pushed images when creating workloads:
cpln workload create --name my-app --gvc my-gvc \
  --image //image/my-app:v1 --port 8080 --public

Image reference formats

FormatDescription
//image/IMAGE:TAGImage in your org’s registry
ORG.registry.cpln.io/IMAGE:TAGImage in another org’s registry
nginx:latestPublic image from Docker Hub
gcr.io/project/IMAGE:TAGImage from Google Container Registry

Authenticate Docker

For direct Docker operations, authenticate to your org’s registry:
cpln image docker-login
Then use standard Docker commands:
docker pull your-org.registry.cpln.io/my-app:v1
docker push your-org.registry.cpln.io/my-app:v1

List and manage images

# List all images in your org
cpln image get

# Get details for a specific image
cpln image get my-app:v1

# Delete an image
cpln image delete my-app:v1

Copy images between orgs

Copy an image to another organization:
cpln image copy my-app:v1 --to-org destination-org
Copy with a different name:
cpln image copy my-app:v1 --to-org destination-org --to-name renamed-app:v1
For cross-org copies with different credentials, use --to-profile. See the Copy Images guide.

CI/CD authentication

For automated pipelines, set CPLN_TOKEN in your CI/CD platform’s secrets (e.g., GitLab CI/CD variables, GitHub secrets) and use the CLI directly:
cpln image build --name my-app:$CI_COMMIT_SHA --push
The CLI automatically uses CPLN_TOKEN when available. For direct Docker access, authenticate with a service account:
echo $CPLN_TOKEN | docker login your-org.registry.cpln.io -u '<token>' --password-stdin
See CI/CD Usage for complete automation setup.

Learn more