Skip to content
GitHubXDiscord

PublicRepository

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

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

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"
}]
}
});

Configure the public repository with additional catalog data and tags.

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

Section titled “Example with Adoption of Existing Resource”

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

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