Amazon ECR containerd resolver
The Amazon ECR containerd resolver is an implementation of a
Pusher that can pull images from Amazon ECR and
push images to Amazon ECR using the Amazon ECR API instead of the Docker
Note: This repository is a proof-of-concept and is not recommended for production use.
resolver, _ := ecr.NewResolver() img, err := client.Pull( namespaces.NamespaceFromEnv(context.TODO()), "ecr.aws/arn:aws:ecr:us-west-2:123456789012:repository/myrepository:mytag", containerd.WithResolver(resolver), containerd.WithPullUnpack, containerd.WithSchema1Conversion)
ctx := namespaces.NamespaceFromEnv(context.TODO()) img, _ := client.ImageService().Get( ctx, "docker.io/library/busybox:latest") resolver, _ := ecr.NewResolver() err = client.Push( ctx, "ecr.aws/arn:aws:ecr:us-west-2:123456789012:repository/myrepository:mytag", img.Target, containerd.WithResolver(resolver))
Two small example programs are provided in the example directory demonstrating how to use the resolver with containerd.
containerd specifies images with a
refs are different from Docker
image names, as
refs intend to encode an identifier, but not a retrieval
refs start with a DNS-style namespace that can be used to select
Resolvers to use.
ref format used by the amazon-ecr-containerd-resolver is
ecr.aws/ followed by the ARN of the repository and a label and/or a digest.
The Amazon ECR containerd resolver manages its dependencies with Go 1.11
modules and works best when used
with Go 1.11 or greater. If you have Go 1.11 or greater installed, you can
build the example programs with
The Amazon ECR containerd resolver is licensed under the Apache 2.0 License.