当我尝试使用 container transform 转换 Docker compose 文件时我收到以下错误:
Container "container-name" is missing required parameter 'image'.
带有图像参数的服务,它运行良好。但是,具有构建参数而不是图像的那些会导致错误。我想使用构建参数基于 Dockerfile 构建一些图像,并且我根本不需要 Docker 撰写文件中的图像参数。这里最有效的解决方案是什么?
这是一个例子:
db
的成功转换服务:Docker-compose.yml:
db:
image: postgres
Dockerrun.aws.json:
"containerDefinitions": [
{
"essential": true,
"image": "postgres",
"memory": 128,
"mountPoints": [
{
"containerPath": "/var/lib/postgresql/data/",
"sourceVolume": "Postgresql"
}
],
"name": "db"
}
web
的转换失败服务自 build
代替image
范围:Docker-compose.yml:
web:
build:
context: .
dockerfile: Dockerfile
最佳答案
问题是 AWS ECS(=弹性容器服务)任务定义不能依赖 Dockerfile 来构建镜像。图像必须已经构建,才能在任务定义中使用。出于这个原因,"image"
key 在任务定义 json 文件中是必需的,因此它也必须在您要转换的 docker-compose 文件中。
任务定义的镜像可以来自 Docker hub(就像 postgres
镜像一样),或者您可以构建自己的镜像并将它们推送到 AWS ECR(=弹性容器注册表)。
关于docker - 容器变换给出缺少图像参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61621646/