【问题标题】:Soft memory limit for AWS ECS task defined by docker-compose.yamldocker-compose.yaml 定义的 AWS ECS 任务的软内存限制
【发布时间】:2019-08-13 17:40:57
【问题描述】:

亚马逊提供ecs-cli compose命令,可以从docker-compose.yaml设置任务定义

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

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

有没有办法通过 compose 实现这一点?或者使用 compose 是个坏主意,最好使用原生任务定义。

更新 我的 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

【问题讨论】:

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


    【解决方案1】:

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

    截至今天,根据docker docsdeploy 仅适用于群模式部署。

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

    此处描述的选项特定于 deploy 密钥和 swarm 模式。如果你想在非 swarm 上设置资源限制 部署,使用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
    

    【讨论】:

    • 我编写了 docker-compose 版本 3(据我了解,版本 3 中的文档内存限制应声明为部署/资源....)可以选择使用版本 2。
    • @farincz 你能分享你的版本 3 示例吗?有可能,ecs-cli 与最新版本的 docker compose 不兼容。我们可以检查一下。
    • 当然,我只是将其附加到问题
    • @farincz 检查我更新的答案。您现在可能想使用 v2。
    猜你喜欢
    • 2017-11-29
    • 2021-06-16
    • 1970-01-01
    • 2021-12-24
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 2017-01-08
    相关资源
    最近更新 更多