Skip to content

PublicRepository ​

The PublicRepository resource allows you to manage AWS ECR PublicRepositorys for storing and sharing container images publicly.

Minimal Example ​

Create a basic public repository with a name and repository policy.

ts
import AWS from "alchemy/aws/control";

const publicRepository = await AWS.ECR.PublicRepository("myPublicRepo", {
  repositoryName: "my-awesome-public-repo",
  repositoryPolicyText: {
    Version: "2012-10-17",
    Statement: [{
      Effect: "Allow",
      Principal: { AWS: "*" },
      Action: "ecr:BatchGetImage"
    }]
  }
});

Advanced Configuration ​

Configure the public repository with additional catalog data and tags.

ts
const advancedPublicRepository = await AWS.ECR.PublicRepository("myAdvancedPublicRepo", {
  repositoryName: "my-advanced-public-repo",
  repositoryPolicyText: {
    Version: "2012-10-17",
    Statement: [{
      Effect: "Allow",
      Principal: { AWS: "*" },
      Action: ["ecr:BatchGetImage", "ecr:DescribeRepositories"]
    }]
  },
  repositoryCatalogData: {
    description: "This is my advanced public repository for container images.",
    displayName: "Advanced Public Repo",
    logoImageBlob: "base64EncodedImageString"
  },
  tags: [
    { Key: "Environment", Value: "Development" },
    { Key: "Project", Value: "ECRIntegration" }
  ]
});

Example with Adoption of Existing Resource ​

Create a public repository while adopting an existing resource if it already exists.

ts
const adoptedPublicRepository = await AWS.ECR.PublicRepository("myAdoptedRepo", {
  repositoryName: "existing-public-repo",
  adopt: true
});