我使用 CDK 一段时间了,但我还不确定哪种是启动创建 ECR 存储库、构建 Docker 映像并将其发送到 ECR 的堆栈的最佳方式。
我上次的尝试是这样的:
taskDefinition.addContainer("container", {
image: new AssetImage('./', {
repositoryName: "name"
})
});
Run Code Online (Sandbox Code Playgroud)
但这种方法有一个问题,它repositoryName在课堂上被弃用AssetImage,而且看起来在任何地方都被弃用。
有人可以告诉我们如何推出这种东西吗?
小智 9
Pedreiro 的答案展示了构建和上传图像的正确方法。在这种情况下,CDK 将自动为您创建一个 ECR 存储库。
我强烈建议使用该aws-ecs-patterns模块来开始使用 CDK 上的 ECS。它已经提供了一些常见的用例,您可以使用很少的代码部署 ECS 服务。概述页面是一个很好的起点:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecs-patterns-readme.html
但在不太可能的情况下,您只想使用 CDK 创建 ECR 存储库,您可以这样做:
const repository = new ecr.Repository(this, 'Repository');
Run Code Online (Sandbox Code Playgroud)
查看相应的文档:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecr-readme.html
您显示的代码不是构建 ECR,而是部署 ECS 任务定义。如果您尝试在部署时构建 docker 映像,CDK 有一个方便的功能,可以使用资产同时执行这两项操作:
image: ecs.ContainerImage.fromAsset('./image') // build and upload an image directly from a Dockerfile in your source directory.
Run Code Online (Sandbox Code Playgroud)
否则,请检查文档中提供的图像选项:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecs-readme.html#images
| 归档时间: |
|
| 查看次数: |
17766 次 |
| 最近记录: |