Как смонтировать файловую систему на основе FUSE в контейнере docker, работающем на AWS?

#amazon-web-services #docker #amazon-ecs #fuse #rclone

Вопрос:

Мне нужно смонтировать файловую систему на основе ПРЕДОХРАНИТЕЛЕЙ (с помощью rclone) в контейнере docker, который должен выполняться на AWS ECS Fargate.

У меня нет проблем с запуском контейнера локально, используя следующую команду:

 docker run --rm --device /dev/fuse --cap-add SYS_ADMIN <IMAGE_NAME>
 

В то время как на AWS ECS Fargate контейнер docker работает неправильно, потому что я не нашел, как установить флаги —device и —cap-add при определении задачи на AWS ECS. Любое предложение будет действительно оценено по достоинству.

Комментарии:

1. Смогли ли вы найти способ установить флаги и запустить фаргейт так, как вам хотелось бы?

2. К сожалению, я не смог найти прямого решения этой проблемы. Я опубликовал обходной путь в надежде, что это может помочь.

Ответ №1:

К сожалению, я не смог найти прямого решения этой проблемы. Это обходной путь, который я использовал тогда:

Я переключился на задачу ECS типа EC2, потому что, как вы можете видеть в официальной документации, как флаг —устройство, так и —cap-add были и все еще недоступны для задач, запущенных на Fargate.

Таким образом, только с помощью определения задачи в формате 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
}