AWS ECS Fargate 中的 docker cap-add

jwh*_*h20 5 amazon-web-services amazon-ecs aws-cloudformation dockerfile aws-fargate

我在创建需要 docker“-cap-add”运行时选项的 AWS ECS Fargate 类型任务时遇到问题。AWS 文档对于此功能似乎不完整或含糊不清。

我的容器需要安装 CIFS 文件系统,当我在 Docker 中运行它时,我使用以下命令:

docker run --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH -it alpine-cifs-python sh

它按预期工作。AWS文档似乎表明各种文档都支持“功能”。例如以下内容:

AWS Linux参数

说:

如果您使用的任务使用 Fargate 启动类型,则支持功能,但不支持下面描述的添加参数。

因此支持“功能”,但不支持“添加”。目前尚不清楚这意味着什么,我已经在 CloudFormation YAML 中尝试了任意数量的组合,但没有一个在不抛出错误的情况下工作。

我一直在处理这样的事情:

  LinuxParameters:
    Capabilities: 
      Add:
        - SYS_ADMIN
        - DAC_READ_SEARCH
      #KernelCapabilities:
        #- 'SYS_ADMIN'
        #- 'DAC_READ_SEARCH'
Run Code Online (Sandbox Code Playgroud)

但当我尝试部署时,这会返回错误:

Fargate 不允许添加 Linux 功能。(服务:AmazonECS;状态代码:400;错误代码:ClientException;请求 ID:f7368ec6-38a6-4a0b-b8ec-7eb078ea5367)

如果我省略“添加”参数,我会得到:

属性 Capability 的值必须是一个对象

我尚未成功找到任何有关如何在 Fargate ECS 任务中实现“功能”的示例。

我缺少什么?谢谢!

Sam*_*arp 3

Fargate 今天不支持--cap-add。仅支持可以删除的功能(如--cap-drop)。