gpt4 book ai didi

amazon-web-services - 如何在 terraform 中将主机目录绑定(bind)到 ECS

转载 作者:行者123 更新时间:2023-12-02 20:48:30 24 4
gpt4 key购买 nike

我一直在尝试在 ECS 上容器化应用程序。我正在使用 Terraform 为其构建基础设施。

现在,我想将主机目录挂载到容器中。在普通的 docker 上,我会通过使用 docker run -v <host_path>:<path_inside_container> 来做这件事。 .但我无法在 terraform 中找到相同的等价物。

我试过 volume aws_ecs_task_definition 内的指令但我无法从主机目录读取/写入主机目录。

resource "aws_ecs_task_definition" "my-application"{
family = <application_family_name>
task_role_arn = "${aws_iam_role.ecsTaskRole.arn}"
network_mode = "host"

volume {
name = <application_files>
host_path = "/home/my_app_dir/"
}

container_definitions = <container_definitions>
}

提前致谢。

最佳答案

您需要做的是,在资源 aws_ecs_task_definition 中定义卷后,在任务定义中添加一个映射。

@Amal 通过在任务定义中添加 mountPoints 来回答这个问题。 任务定义中的 sourceVolume 必须与资源的 volume 中的名称相同。

这里需要说明的是,

@amal 的卷代码部分是从 Cloudformation 模板复制的,但不能在 terraform 中使用。目前没有资源 aws_ecs_task_definition 支持的 map 列表。您现有的卷代码很好。

如果需要添加更多卷,使用这种方式

resource "aws_ecs_task_definition" "my-application"{
family = <application_family_name>
task_role_arn = "${aws_iam_role.ecsTaskRole.arn}"
network_mode = "host"

volume {
name = <application_files>
host_path = "/home/my_app_dir/"
}

volume {
name = <application_files_2>
host_path = "/home/my_app_dir-2/"
}

container_definitions = <container_definitions>
}

关于amazon-web-services - 如何在 terraform 中将主机目录绑定(bind)到 ECS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46872448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com