首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECS Fargate不支持绑定挂载

ECS Fargate不支持绑定挂载
EN

Stack Overflow用户
提问于 2021-03-19 01:04:25
回答 2查看 2.6K关注 0票数 4

我正在尝试将nodejs docker-compose应用程序部署到aws ecs中,以下是我的docker撰写文件的外观-

代码语言:javascript
复制
version: '3.8'

services:
 sampleapp:
  image: jeetawt/njs-backend
  build:
   context: .
  ports:
   - 3000:3000
  environment:
   - SERVER_PORT=3000
   - CONNECTIONSTRING=mongodb://mongo:27017/isaac
  volumes:
   - ./:/app
  command: npm start

 mongo:
  image: mongo:4.2.8
  ports:
   - 27017:27017
  volumes:
   - mongodb:/data/db
   - mongodb_config:/data/configdb
volumes:
 mongodb:
 mongodb_config:

然而,当我尝试在创建ecs上下文后使用docker compose up运行它时,它抛出以下错误-

代码语言:javascript
复制
WARNING services.build: unsupported attribute        
ECS Fargate does not support bind mounts from host: incompatible attribute

我没有具体说明我想在什么地方使用Fargate来完成这个任务。是否仍然可以使用ec2而不是Fargate来部署应用程序

EN

回答 2

Stack Overflow用户

发布于 2021-03-19 19:07:28

默认模式为Fargate。您可能没有在run命令中指定具有ec2实例的ecs集群。

您的docker compose有一个绑定挂载,因此您的任务需要部署到挂载可以工作的实例上。

此示例讨论如何部署到ec2支持的群集。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cli-tutorial-ec2.html

票数 1
EN

Stack Overflow用户

发布于 2021-03-24 18:29:43

Fargate是默认的,没有办法告诉它您想要在EC2上部署。然而,在某些情况下,当Fargate无法提供所需的功能(例如GPU)时,我们必须部署在EC2上。

如果你真的需要使用绑定挂载,并且需要一个EC2实例,你可以使用这个技巧(我还没有这样做,所以我在这里基本上是头脑风暴):

将您的任务配置为使用GPU (see examples here)

  • Convert您的作品使用docker compose convert

  • Manually编辑
  • 模板以使用不同的实例类型(避免部署基于GPU的实例及其关联价格)
  • 部署生成的CFN模板。

如果你真的需要的话,你甚至可以通过一些sed马戏团来实现自动化。

正如我所说,我没有尝试过,我不确定这是否可行。但我想这不会太复杂。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66695739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档