Том Docker время от времени монтируется слишком поздно для совместного использования файлов с другими контейнерами - PullRequest
1 голос
/ 01 мая 2019

У меня есть два контейнера, которые я запускаю на ECS.Один контейнер - это приложение, которое передает файл конфигурации через том докера во второй контейнер, который является сборщиком файлов Sumologic, который является общим контейнером ведения журнала.

Проблема, с которой я сталкиваюсь, время от времени возникает из-за контейнера ведения журналаполучит ошибку Cannot find file /path/to/logging/file.json.Единственная причина, по которой это может произойти, - это если том пуст, поэтому контейнеру приложения не удалось вовремя поместить файл конфигурации в том.

Как получить контейнер приложения для помещения файлов в томдо того, как второй контейнер попытается прочитать файлы?

1 Ответ

1 голос
/ 01 мая 2019

По состоянию на март 2019 года появилась новая функция ECS, которая решает эту проблему. Цель состоит в том, чтобы убедиться, что контейнер ведения журнала не запускается до тех пор, пока контейнер приложения не запустится (что означает, что контейнер приложения успешно смонтировал свои файлы в томе).

То, как вы это делаете, зависит от вашего определения задачи. например если вы хотите, чтобы контейнер запускался только после запуска контейнера foo, введите

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

Дополнительная литература:

...