我正在尝试将文件从一个容器共享到另一个容器。一个重要的细节是,(正在运行的机器)我的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
,除了将文件放入共享卷外什么都不做任何帮助,提示或指导,我们将不胜感激!
答案 0 :(得分:1)
您能做这样的事
version: '3.5'
volumes:
xxx:
services:
service_1:
...
volumes:
- xxx:/app
service_2:
...
volumes:
- xxx:/opt