Container Registries

ConnectContainer RegistryDockerNPMMaven

Container Registries

When Service Hub builds your code, it produces artifacts β€” container images for most services, or script bundles for Cloudflare Workers. Those artifacts need to be stored somewhere accessible to the deployment target. Container registry connections tell Planton where to push those artifacts and how to authenticate with the registry.

This page covers three types of registry connections: container image registries (for Docker/OCI images), NPM registries (for JavaScript/TypeScript packages), and Maven repositories (for Java artifacts).

Container Image Registries

Container image registries store the Docker images that Service Hub produces during builds. Every service that uses Buildpacks or Dockerfile builds needs a container registry connection so the built image can be pushed and later pulled by the deployment target.

Planton supports five container image registry providers:

GCP Artifact Registry

Google's managed container registry. This is the recommended choice if your deployment targets run on GCP (GKE, Cloud Run).

FieldDescription
GCP Project IDThe Google Cloud project that hosts the registry
GCP RegionThe region where the registry is located
Repository NameThe Artifact Registry repository name
Service Account KeyBase64-encoded JSON key for a service account with Artifact Registry Writer role

AWS Elastic Container Registry (ECR)

Amazon's managed container registry. The natural choice for ECS and EKS deployments.

FieldDescription
Account IDYour 12-digit AWS account number
Access Key IDIAM user access key with ECR permissions
Secret Access KeyIAM user secret key
RegionThe AWS region where the ECR registry is hosted

Azure Container Registry

Microsoft's managed container registry. Pairs with AKS and Azure Container Instances deployments.

Note: Azure Container Registry connection support is defined but the configuration interface is still being implemented. Check back for updates.

JFrog Artifactory

A self-hosted or cloud-hosted universal artifact repository. Useful for organizations that standardize on JFrog for all artifact management.

Note: JFrog Artifactory connection support is defined but the configuration interface is still being implemented. Check back for updates.

GitHub Container Registry (GHCR)

GitHub's container registry, tightly integrated with GitHub Actions and GitHub Packages.

FieldDescription
GitHub UsernameYour GitHub username or a machine account username
Personal Access TokenA GitHub PAT with write:packages scope

Connecting via the Web Console

  1. Navigate to Connections and click the Docker card under DevOps Pipeline.
  2. Name your connection.
  3. Select your registry provider β€” GCP Artifact Registry, AWS ECR, Azure Container Registry, JFrog Artifactory, or GitHub Container Registry.
  4. Provide the provider-specific credentials listed above.
  5. Create the connection.

How Container Registries Are Used During Builds

When a Service Hub pipeline runs:

  1. The build stage compiles your code and produces a container image.
  2. The image is tagged with the commit SHA and pushed to the connected registry.
  3. The deployment stage pulls the image from the registry and deploys it to the target environment.

The image path follows the convention: <registry-host>/<repository-path>:<commit-sha>. Planton constructs this path automatically from the registry connection configuration.


NPM Registries

NPM registry connections allow Service Hub builds to resolve private JavaScript and TypeScript packages. If your monorepo or service depends on internal packages published to a private NPM registry, you need this connection so the build stage can install dependencies.

Planton supports three NPM registry providers:

ProviderWhat You Need
GCP Artifact RegistryGCP Project ID, region, repository name, service account key
GitHub PackagesGitHub username, personal access token with read:packages scope
JFrog ArtifactoryConfiguration interface being implemented

Connecting via the Web Console

  1. Navigate to Connections and click the NPM card under DevOps Pipeline.
  2. Name your connection, select your provider, and provide the credentials.
  3. Create the connection.

Maven Repositories

Maven repository connections allow Service Hub builds to resolve private Java artifacts. If your services depend on internal libraries published to a private Maven repository, you need this connection.

Planton supports three Maven repository providers:

ProviderWhat You Need
GCP Artifact RegistryGCP Project ID, region, repository name, service account key
GitHub PackagesGitHub username, personal access token with read:packages scope
JFrog ArtifactoryConfiguration interface being implemented

Connecting via the Web Console

  1. Navigate to Connections and click the Maven card under DevOps Pipeline.
  2. Name your connection, select your provider, and provide the credentials.
  3. Create the connection.

Cloudflare Worker Script Storage

Cloudflare Workers are deployed differently from container-based services β€” they use script bundles stored in R2 buckets rather than container images. If you deploy Cloudflare Workers through Service Hub, you need a Wrangler connection that specifies the R2 bucket for storing script bundles.

This connection appears under the DevOps Pipeline category as Wrangler in the Connections page.

FieldDescription
R2 Access Key IDAccess key for R2 API operations
R2 Secret Access KeySecret key for R2 API operations
R2 EndpointCustom endpoint URL (optional)

Choosing Your Registry

If you're starting fresh and choosing which registry to use, a practical guideline:

  • Deploying to AWS (EKS, ECS)? Use ECR β€” it integrates natively with AWS IAM and avoids cross-cloud network transfer costs.
  • Deploying to GCP (GKE, Cloud Run)? Use GCP Artifact Registry β€” same benefits for the GCP ecosystem.
  • Deploying to multiple clouds? Use GitHub Container Registry or JFrog Artifactory for a cloud-neutral registry.
  • Already using JFrog? Continue using it β€” Planton connects to it the same way your existing tooling does.

Next article

State Backends

Every infrastructure deployment managed by Planton uses an Infrastructure as Code (IaC) engine β€” either Pulumi or Terraform β€” under the hood. These engines track the state of your infrastructure in state files: a record of what resources exist, their current configuration, and the relationships between them. Without state, the IaC engine cannot determine what to create, update, or delete on the next deployment. State backend connections tell Planton where to store these state files. Every new...
Read next article

Β©2026 Planton Cloud Inc. All Rights Reserved.