如何在 AWS Batch 上使用 docker compose?
Posted
技术标签:
【中文标题】如何在 AWS Batch 上使用 docker compose?【英文标题】:How can I use docker compose on AWS Batch? 【发布时间】:2018-05-19 05:52:31 【问题描述】:我有一个多容器(docker compose)应用程序。我想在 AWS Batch 上离线扩展它,以便在 S3 上处理大量数据。 我用于 docker compose 的 .yml 文件如下所示:
version: '2'
services:
container1:
container_name:
image:
ports:
container2:
container_name:
image:
depends_on: container1
ports:
很遗憾,我在网上找不到任何处理此类案例的示例或教程。谁能帮我理解我应该如何解决这个问题?
【问题讨论】:
【参考方案1】:日期:2018 年 11 月 6 日:
目前是不行的,如果是多容器的docker compose就不行。 docker-compose up 指令没有选项,只允许使用单个 docker 图像。定义如下:
"Properties" :
"Type" : "container",
"Parameters" :
"net": "host"
,
"ContainerProperties" :
"Command" : [ "command1" ],
"Memory" : 2000,
"Environment": [
"Name" : "NAME",
"Value" : "true"
],
"Vcpus" : 2,
"Image" : "redis:latest"
,
"JobDefinitionName" : "job-1",
"RetryStrategy" :
"Attempts" : 1
实际上在官方文档中将container
指定为类型的唯一有效值:
类型类型 注册作业定义时,指定类型 工作。目前,仅支持容器作业。
类型:字符串
有效值:容器
必填:是
对于单个容器,有一个 cli 工具可以将 docker-compose 转换为作业定义,但实际上,您可以手动执行此操作:
https://github.com/turnerlabs/compose-to-batch【讨论】:
感谢您的回答。非常不幸的是,批处理不支持docker-compose up...
他们强迫我们使用 docker 来提供这项服务,但是我们必须将环境变量传递给工作,无论如何 IMO 消除了 docker 的一个更好的功能(捆绑 .env
文件并致电docker-compose
)以上是关于如何在 AWS Batch 上使用 docker compose?的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS Batch 上运行时,Redshift 频谱查询永远不会终止
尽管用户角色,AWS Batch 作业在 S3 上被拒绝访问
将弹性文件系统挂载到 AWS Batch Compute Environment