环境
问题
我们的应用程序中有 3 个 docker 容器。
DB 和 应用程序服务器 启动,但是一旦 DB-seed 在运行一些迁移脚本后退出(应该如此)。其余的容器死亡(停止)。
这种奇怪的行为只发生在 AWS ecs 中,从不在我的本地 docker 设置中发生。
此外,杀死任何容器会停止 AWS-ECS 中的其他容器。
我们的 docker 撰写文件
version: '2'
services:
db:
image: db-image
hostname: db
cpu_shares: 50
mem_limit: 3758096384
volumes:
- /data/db:/data/db
ports:
- "27017:27017"
db-seed:
image:db-seed
cpu_shares: 10
mem_limit: 504288000
links:
- db
web:
image: server-image
cpu_shares: 50
mem_limit: 3758096384
ports:
- "8080:8080"
links:
- db
这是 AWS ecs 中的问题还是功能(全部或无)?
最佳答案
您的任务定义中缺少 essential
参数。不幸的是,我不知道通过 docker-compose
插入此参数的方法,但这就是导致您在生成的 ECS 任务中出现行为的原因。从文档:
请注意,该参数在省略时默认为 true
。鉴于您的所有任务都缺少该参数,当其中一个任务退出时,它们都将停止是预期的行为。
更多信息可以在 ECS 任务定义参数文档中找到:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_environment
我知道这不是一个确切的答案,但我希望它有助于确定如何解决您的问题。
关于docker - AWS ecs - 如果其中一个容器退出或被杀死,所有容器都会被杀死(停止),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45716832/