Привет, Сообщество!
Я столкнулся со следующей проблемой и не нашел никаких полезных советов в документации:
У меня есть два файла docker-compose.yml. Предположим, этот случай:
Файл 1:
docker-compose-application.yml
Файл 2:
docker-compose-elasticstack.yml
Оба файла запускаются независимо и работают правильно. Обычно запускаю только приложение. Только в некоторых особых случаях требуется эластичная накладка.
Вопрос:
Как я могу настроить дополнительный общий доступ к файлам для журналов между этими двумя файлами, к которым я могу получить доступ с помощью FileBeat? Так что при необходимости запускаю оба файла, если не только приложение.
Цель: 1
docker-compose -f docker-compose-application.yml up
Гол: 2
docker-compose -f docker-compose-application.yml -f docker-compose-elasticstack.yml up
Заранее большое спасибо!


Вы можете использовать том внешнее имя:
docker-compose-application.yml:
services:
app:
image: app-image
volumes:
- logs:/path/in/container
volumes:
logs:
external: true
docker-compose-elasticstack.yml
services:
filebeat:
image: filebeat-image
volumes:
- logs:/path/in/container
... other services
volumes:
logs:
external: true
Обратите внимание, что этот именованный том должен существовать до docker-compose up.
Вы можете создать его через docker volume create logs.
См. Дополнительную информацию здесь.
Том обязательно делится «вживую». Как только ваше приложение сбрасывает строку журнала на диск (logs-volume), filebeat должен ее увидеть.
Неужели он не расшаривается "вживую"? Потому что, к сожалению, я не могу видеть логи, только после перезапуска.