docker - 容器变换给出缺少图像参数错误

标签 docker docker-compose dockerrun.aws.json

当我尝试使用 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/

相关文章:

postgresql - Docker-Compose + postgres : database and user creation not working (works without compose)

docker - 如何解决postgresql docker容器挂载nfs卷时的chown权限问题?

docker - docker在启动时撰写run bash命令

amazon-web-services - 错误 : ValidationError - The AWSEBDockerrunVersion key in the Dockerrun. aws.json 文件无效或未包含

amazon-web-services - Dockerrun aws 硬编码内存

docker - 如何在docker-swarm管理器上访问本地构建的docker-image?

angular - 前端无法到达单独的 docker 容器中的后端端口

python - docker-compose 卷未正确安装

node.js - 如何将 sqlite3 与 docker compose 一起使用