Docker AWS ecs-如果其中一个容器退出或终止,则所有容器都将终止(停止)

Docker AWS ecs-如果其中一个容器退出或终止,则所有容器都将终止(停止),docker,amazon-ec2,docker-compose,amazon-ecs,Docker,Amazon Ec2,Docker Compose,Amazon Ecs,Env 自动气象站 Docker版本17.03.1-ce,版本7392c3b/17.03.1-ce 问题 我们的应用程序中有3个docker容器 分贝 数据库种子(数据库迁移脚本运行程序) 应用服务器 DB和app server启动,但是在运行一些迁移脚本之后,一旦DB种子退出(它应该退出)。其余的容器会死亡(停止) 这种奇怪的行为只在AWS ecs中发生,在我的本地docker设置中从未发生过 此外,杀死任何容器都会停止AWS-ECS中的其他容器 我们的docker撰写文件 versi

Env

  • 自动气象站
  • Docker版本17.03.1-ce,版本7392c3b/17.03.1-ce
问题

我们的应用程序中有3个docker容器

  • 分贝
  • 数据库种子(数据库迁移脚本运行程序)
  • 应用服务器
DBapp server启动,但是在运行一些迁移脚本之后,一旦DB种子退出(它应该退出)。其余的容器会死亡(停止)

这种奇怪的行为只在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中的问题还是功能(全部或无)?

任务定义中缺少
基本参数。不幸的是,我不知道如何通过
docker compose
插入此参数,但这正是导致您在生成的ECS任务中的行为的原因。从文件中:

如果容器的基本参数标记为
true
,并且该容器因任何原因失败或停止,则作为任务一部分的所有其他容器都将停止。如果容器的基本参数标记为
false
,则其故障不会影响任务中的其余容器。如果省略此参数,则假定容器是必需的

请注意,省略该参数时,该参数默认为
true
。如果您的所有任务都缺少该参数,则当其中一个任务退出时,所有任务都会停止

更多信息可在ECS任务定义参数文档中找到:

我知道这不是一个确切的答案,但我希望它有助于确定如何解决您的问题