【问题标题】:Docker volume sporadically mounted too late for file sharing with other containersDocker 卷偶尔挂载太晚,无法与其他容器共享文件
【发布时间】:2019-05-01 17:07:34
【问题描述】:

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

我遇到的问题是日志容器偶尔会收到错误Cannot find file /path/to/logging/file.json。发生这种情况的唯一原因是卷是空的,因此应用容器没有及时将配置文件放入卷中。

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

【问题讨论】:

    标签: docker amazon-ecs docker-volume sumologic


    【解决方案1】:

    截至 2019 年 3 月,有一项新的 ECS 功能可以解决此问题。目标是确保日志容器在应用容器启动之前不会启动(这意味着应用容器已成功将其文件挂载到卷中)。

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

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

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2021-07-04
      • 2017-02-16
      • 2021-04-20
      • 2015-03-15
      相关资源
      最近更新 更多