我有两个在ECS上运行的容器。一个容器是一个应用程序,它通过docker卷与第二个容器共享配置文件,第二个容器是Sumologic文件收集器,该容器是通用日志记录容器。
我遇到的问题是,记录容器偶尔会出现错误Cannot find file /path/to/logging/file.json
。发生这种情况的唯一原因是卷为空,因此应用程序容器无法按时将配置文件放入卷中。
在另一个容器尝试读取文件之前,如何让应用容器将文件放入卷中?
答案 0 :(得分:1)
从2019年3月开始,新的ECS功能可以解决此问题。目的是确保在应用容器启动之前不会启动日志记录容器(这意味着应用容器已成功将其文件安装到卷中)。
执行此操作的方法是在任务定义中使用dependsOn。例如如果您只想在启动容器foo之后启动容器,则可以这样做
"dependsOn": [
{
"containerName": "foo",
"condition": "START"
}
]
进一步阅读: