Apache spark 在docker堆栈之间共享卷?

Apache spark 在docker堆栈之间共享卷?,apache-spark,docker,docker-compose,docker-swarm,Apache Spark,Docker,Docker Compose,Docker Swarm,我有两个不同的docker堆栈,一个用于HBase,另一个用于Spark。我需要将HBase jar放入spark路径。一种不用修改spark容器的方法是使用卷。在我的docker-compose.yml for HBase中,我定义了一个指向HBase主目录的卷(它恰好是/opt/HBase-1.2.6)。是否可以与spark stack共享该音量 现在,由于服务名称不同(2个不同的docker compose文件),卷被预先设置(hbase\u hbasehome和spark\u hbase

我有两个不同的docker堆栈,一个用于HBase,另一个用于Spark。我需要将HBase jar放入spark路径。一种不用修改spark容器的方法是使用卷。在我的docker-compose.yml for HBase中,我定义了一个指向HBase主目录的卷(它恰好是/opt/HBase-1.2.6)。是否可以与spark stack共享该音量


现在,由于服务名称不同(2个不同的docker compose文件),卷被预先设置(hbase\u hbasehome和spark\u hbasehome),导致共享失败。

您可以使用
外部卷。见正式文件:

如果设置为true,则指定此卷是在外部创建的 组成docker compose up不尝试创建它,并引发 如果不存在,则为错误

外部卷不能与其他卷配置一起使用 钥匙(驾驶员,驾驶员选择)

在下面的示例中,不尝试创建名为 [projectname]\u data,Compose查找一个简单称为 并将其装载到db服务的容器中

例如:

version: '2'

services:
  db:
    image: postgres
    volumes:
      - data:/var/lib/postgresql/data

volumes:
  data:
    external: true
您还可以分别指定卷的名称和用于在撰写文件中引用卷的名称:

volumes:
  data:
    external:
      name: actual-name-of-volume