docker-compose.yaml为AWS ECS任务定义的软内存限制

时间:2019-03-22 17:08:57

标签: amazon-web-services docker docker-compose amazon-ecs

Amazon提供了ecs-cli compose命令,该命令可以从docker-compose.yaml中设置任务定义

但是我无法为此任务声明内存限制(尤其是软限制)。不支持部署选项。

Skipping unsupported YAML option for service...  option name=deploy 

有没有办法通过compose实现这一目标?还是使用撰写错误的主意,最好使用本机任务定义。

更新 请求了我的撰写文件,就在这里

version: '3'

services:
  worker:
    image: 880289074637.dkr.ecr.us-east-1.amazonaws.com/negative-keywords:latest
    env_file: .env
    command: ["celery", "-A", "negmatch", "worker", "-l", "info"]
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 256M
        reservations:
          cpus: '0.25'
          memory: 128M
  web:
    image: 880289074637.dkr.ecr.us-east-1.amazonaws.com/negative-keywords:latest
    env_file: .env
    ports:
      - "80:8000"
    depends_on:
      - "worker"
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 256M
        reservations:
          cpus: '0.25'
          memory: 128M

1 个答案:

答案 0 :(得分:1)

您将需要使用docker compose的v2来设置值。

根据docker docs,到目前为止,deploy仅适用于集群模式部署。

  

正在寻找在非群模式容器上设置资源的选项吗?

     

此处描述的选项特定于部署键和蜂群   模式。如果要在非群集上设置资源限制   部署中,请使用Compose file format version 2 CPU, memory, and other resource options。如果您还有其他疑问,请参阅   GitHub问题docker/compose/4513的讨论。

有关使用v2和v3的更多信息。 https://github.com/docker/compose/issues/4513#issuecomment-377311337

这是示例docker-compose(v2),它设置了任务容器定义的软和硬内存限制。 mem_limit是硬限制,而mem_reservation是软限制。

命令-

ecs-cli compose --project-name nginx --file docker-compose.yaml create

撰写文件-

version: '2'
services:
  nginx:
    image: "nginx:latest"
    mem_limit: 512m
    mem_reservation: 128m
    cpu_shares: 0
    ports:
      - 80

enter image description here