Два независимых файла Docker-Compose и доступ к общей папке

Привет, Сообщество!

Я столкнулся со следующей проблемой и не нашел никаких полезных советов в документации:

У меня есть два файла docker-compose.yml. Предположим, этот случай:

Файл 1:

docker-compose-application.yml
  • Содержит ceveral сервисы и конфигурации.

Файл 2:

docker-compose-elasticstack.yml
  • Содержит сервисы ElasticSearch, Logstash, Kibana и FileBeat

Оба файла запускаются независимо и работают правильно. Обычно запускаю только приложение. Только в некоторых особых случаях требуется эластичная накладка.

Вопрос:

Как я могу настроить дополнительный общий доступ к файлам для журналов между этими двумя файлами, к которым я могу получить доступ с помощью FileBeat? Так что при необходимости запускаю оба файла, если не только приложение.

Цель: 1

docker-compose -f docker-compose-application.yml up
  • Приложение работает без общего каталога файлов журнала.

Гол: 2

docker-compose -f docker-compose-application.yml -f docker-compose-elasticstack.yml up
  • Приложение + Elasticstack, работающее с общим каталогом файлов журнала.

Заранее большое спасибо!

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать том внешнее имя:

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.

См. Дополнительную информацию здесь.

Неужели он не расшаривается "вживую"? Потому что, к сожалению, я не могу видеть логи, только после перезапуска.

silenum 05.10.2018 10:49

Том обязательно делится «вживую». Как только ваше приложение сбрасывает строку журнала на диск (logs-volume), filebeat должен ее увидеть.

Fabian Braun 05.10.2018 11:02

Другие вопросы по теме