两个独立的Docker-Compose-files和对共享文件夹的访问

时间:2018-10-05 06:08:15

标签: docker docker-compose elastic-stack

你好社区!

我遇到了以下问题,但在文档中找不到任何有用的建议:

我有两个docker-compose.yml文件。让我们假设这种情况:

文件1:

docker-compose-application.yml
  • 包含一些服务和配置。

文件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
  • 使用共享日志文件目录运行的Application + Elasticstack。

非常感谢!

1 个答案:

答案 0 :(得分: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创建它。

查看更多信息here