作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在 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/
我是一名优秀的程序员,十分优秀!