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
答案 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