docker-compose:如何将文件从容器映射到卷

时间:2020-05-18 07:35:35

标签: docker-compose docker-volume

我正在尝试将文件从一个容器共享到另一个容器。一个重要的细节是,(正在运行的机器)我的Docker主机没有拥有对文件的显式访问权限:它提取git存储库,并且不知道该存储库的内部文件组织(带有docker-compose文件的单个例外)。因此,标准映射<host-path>:<container-path>的方法不适用;例如这对我来说是不可能的:here

下面是 docker-compose 文件,已删除该文件以提高可读性。假设service_1有文件/app/awesome.txt。然后,我们希望将其作为service_2装入/opt/awesome.txt

# docker-compose.yml

version: '3'

services:

    service_1:
        volumes:
            - shared_vol:/public
            # how to make service_1 map 'awesome.txt' into /public ?

    service_2:
        volumes:
            - shared_vol/awesome.txt:/opt/awesome.txt

volumes:
    shared_vol:

我拥有但不喜欢的工作解决方案

  • service_1中运行脚本/ cmd,将文件复制到共享卷中:导致竞争,因为service_2在启动时需要文件
  • 引入第三项服务,其他两项depends_on,除了将文件放入共享卷外什么都不做

任何帮助,提示或指导,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

您能做这样的事

version: '3.5'

volumes:
   xxx:

services:

   service_1:
      ...
      volumes:
         - xxx:/app

   service_2:
      ...
      volumes:
         - xxx:/opt
相关问题