我有一个具有以下结构的 ASP.NET Core 8 Web API 项目:
.sln
|_ Api.csproj
|_ SharedLibrary.csproj
|_ Dockerfile
Api.csproj
参考文献SharedLibrary.csproj
。我能够构建 docker 映像并在我的 docker 桌面上本地运行它。
我将以下 Fargate 部署代码块添加到我的 CDK 堆栈中:
new ApplicationLoadBalancedFargateService(this, "docker-tag", new ApplicationLoadBalancedFargateServiceProps
{
Cluster = cluster,
DesiredCount = 1,
TaskImageOptions = new ApplicationLoadBalancedTaskImageOptions
{
Image = ContainerImage.FromAsset("../../src/"),
ContainerPort = 8080
},
MemoryLimitMiB = 512,
PublicLoadBalancer = false
});
执行
cdk deploy
时,终端保持空白,不提供任何输出。我尝试了 cdk deploy --verbose
,它显示了一些与 Fargate 任务无关的初始输出,然后挂在那里。
我什至尝试提供 Dockerfile 的绝对路径,但结果是相同的。
如果有人知道可能会发生什么,我将非常感激。
如果我改变了
cdk deploy
就可以正常工作了
Image = ContainerImage.FromAsset("../../src/")
到
Image= ContainerImage.FromRegistry("amazon/amazon-ecs-sample")
折腾了这么多天才发现这个问题。我的 docker 文件位于解决方案的根级别。这导致 CDK 资产在 docker 构建期间被复制。将 CDK 文件夹添加到 dockerignore 并且它起作用了。非常令人失望的是
cdk deploy
没有给出任何有助于解决问题的错误输出。