如何在运行在AWS上的Docker容器中挂载基于FUSE的文件系统?

4
我需要在一个必须在AWS ECS Fargate上执行的Docker容器中挂载一个基于FUSE的文件系统(使用rclone)。
我没有问题地运行以下命令来在本地运行容器:
docker run --rm --device /dev/fuse --cap-add SYS_ADMIN <IMAGE_NAME>

在 AWS ECS Fargate 上,Docker 容器无法正常工作,因为我还没有找到如何在定义 AWS ECS 任务时设置 --device--cap-add 标志。任何建议都将不胜感激。

你能找到一种设置标志并按照你的意愿运行Fargate的方法吗? - Ganbayar Gansukh
1
很遗憾,我没有找到直接解决这个问题的方法。我已经发布了一个变通方法,希望能有所帮助。 - Andrea Del Corto
1个回答

4
很遗憾,我无法找到直接解决该问题的方法。这是当时我使用的解决方法:
我转换为 EC2 类型的 ECS 任务,因为正如您可以在官方文档中看到的那样,在 Fargate 上启动的任务不支持 --device--cap-add 标志。
通过任务的 JSON 定义,我仅能够添加所需的标志。以下是一个示例 JSON 定义,展示了如何添加这些属性:
{
  ... other properties
  "containerDefinitions": [
      ... other properties
      "linuxParameters": {
        "capabilities": {
          "add": [
            "SYS_ADMIN"
          ],
          "drop": null
        },
        ... other properties
        "devices": [
          {
            "containerPath": "/dev/fuse",
            "hostPath": "/dev/fuse",
            "permissions": null
          }
        ],
        ... other properties
      },
      ... other properties
  ],
  ... other properties
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接