Два независимых Docker-Compose-Files и доступ к общей папке - PullRequest
0 голосов
/ 05 октября 2018

Hello Community!

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

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

Файл 1:

docker-compose-application.yml
  • Содержит несколько служб и конфигураций.

Файл 2:

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

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

Вопрос:

Как настроить дополнительный файловый ресурс для журналов между этими двумя файлами, к которым я могу получить доступс 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, работающее с общим каталогом файлов журнала.

Спасибомного заранее!

1 Ответ

0 голосов
/ 05 октября 2018

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

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.

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

...