Docker卷偶尔安装得太晚,无法与其他容器共享文件

时间:2019-05-01 17:07:34

标签: docker amazon-ecs docker-volume sumologic

我有两个在ECS上运行的容器。一个容器是一个应用程序,它通过docker卷与第二个容器共享配置文件,第二个容器是Sumologic文件收集器,该容器是通用日志记录容器。

我遇到的问题是,记录容器偶尔会出现错误Cannot find file /path/to/logging/file.json。发生这种情况的唯一原因是卷为空,因此应用程序容器无法按时将配置文件放入卷中。

在另一个容器尝试读取文件之前,如何让应用容器将文件放入卷中?

1 个答案:

答案 0 :(得分:1)

从2019年3月开始,新的ECS功能可以解决此问题。目的是确保在应用容器启动之前不会启动日志记录容器(这意味着应用容器已成功将其文件安装到卷中)。

执行此操作的方法是在任务定义中使用dependsOn。例如如果您只想在启动容器foo之后启动容器,则可以这样做

"dependsOn": [
   {
       "containerName": "foo",
       "condition": "START"
   }
]

进一步阅读: