我有两个在ECS上运行的容器。一个容器是一个应用程序,它通过docker卷与第二个容器共享配置文件,第二个容器是Sumologic文件收集器,后者是通用日志记录容器。
我遇到的问题是,日志记录容器偶尔会收到错误Cannot find file /path/to/logging/file.json
。发生这种情况的唯一原因是卷为空,因此应用程序容器无法及时将配置文件放入卷中。
在另一个容器尝试读取文件之前,如何获取应用容器以将文件放入卷中?
最佳答案
截至2019年3月,新的ECS功能可以解决此问题。目的是确保在应用容器启动之前不会启动日志记录容器(这意味着该应用容器已成功将其文件安装到该卷中)。
执行此操作的方法是在任务定义中使用dependsOn。例如如果您希望仅在启动容器foo之后启动容器,则可以
"dependsOn": [
{
"containerName": "foo",
"condition": "START"
}
]
进一步阅读:
关于docker - Docker卷偶尔安装得太晚,无法与其他容器共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939880/