You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS CDK Go将Docker镜像推送到ECR仓库

使用AWS CDK Go v2将Docker镜像推送到自定义ECR仓库

要把你构建好的Docker镜像推送到自己创建的ECR仓库,只需修改DockerImageAsset的配置,指定目标仓库即可。以下是调整后的完整代码和关键说明:

完整代码示例

package main

import (
	"github.com/aws/aws-cdk-go/awscdk/v2"
	"github.com/aws/aws-cdk-go/awscdk/v2/awsecr"
	"github.com/aws/aws-cdk-go/awscdk/v2/awsecrassets"
	"github.com/aws/constructs-go/constructs/v10"
	"github.com/aws/jsii-runtime-go"
)

func main() {
	app := awscdk.NewApp(nil)
	stack := awscdk.NewStack(app, jsii.String("MyStack"), nil)

	name := "my-service"
	providerName := "my-provider"
	serviceName := "my-app"

	// 创建自定义ECR仓库
	repo := awsecr.NewRepository(stack, jsii.String(name+"-ecr"), &awsecr.RepositoryProps{
		RepositoryName: jsii.String(providerName + "/" + serviceName),
	})

	// 构建镜像并推送到自定义ECR仓库
	dockerImage := awsecrassets.NewDockerImageAsset(stack, jsii.String(name+"-ecr-image"), &awsecrassets.DockerImageAssetProps{
		Directory: jsii.String("."),
		File:      jsii.String("some-path/Dockerfile"),
		// 指定目标ECR仓库
		Repository: repo,
		// 可选:设置镜像标签,默认是CDK生成的唯一哈希值
		Tag: jsii.String("latest"),
	})

	app.Synth(nil)
}

关键配置说明

  • 指定目标仓库:在DockerImageAssetProps中添加Repository: repo,让CDK将构建好的镜像推送到你预先创建的ECR仓库,而非默认自动生成的临时仓库。
  • 镜像标签(可选):通过Tag字段自定义镜像标签(比如latest),方便后续在其他服务(如ECS、Lambda)中引用。如果不设置,CDK会自动生成一个唯一哈希值作为标签。
  • 权限自动处理:CDK会自动为部署角色添加推送镜像所需的所有ECR权限(包括上传镜像层、推送镜像等操作),无需手动配置IAM策略。

执行cdk deploy时,CDK会自动完成镜像构建、推送至指定ECR仓库的全流程。

内容的提问来源于stack exchange,提问作者Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:55:59