Мягкий лимит памяти для задачи AWS ECS, определенный docker-compose.yaml - PullRequest
2 голосов
/ 22 марта 2019

Amazon предоставляет команду ecs-cli compose, которая может настроить определение задачи из docker-compose.yaml

Но я не могу объявить ограничения памяти (особенно мягкие) для такой задачи. Опция Deploy не поддерживается.

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 Ответ

1 голос
/ 23 марта 2019

Вам потребуется использовать v2 docker compose для установки значений.

На сегодняшний день, согласно докерская документация , deploy предназначена только для развертывания в режиме роя.

Ищете параметры для установки ресурсов в контейнерах без режима роя?

Описанные здесь параметры относятся к ключу deploy и режиму роя.Если вы хотите установить ограничения ресурсов для развертываний не в Swarm, используйте Составьте файл формата версии 2 ЦП, память и другие параметры ресурса .Если у вас есть дополнительные вопросы, обратитесь к обсуждению проблемы GitHub docker / compose / 4513 .

Подробнее об использовании v2 vs 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

...