我正在使用docker-compose进行Rails设置。为了同步文件,我已经将目录挂载了(省略了一些代码):
app:
build: .
command: rails server -p 3000 -b '0.0.0.0'
volumes:
- .:/app
但是,在运行应用程序时,我不想同步tmp文件夹。 将文件夹添加到dockerignore仅解决构建docker映像时的问题。 运行docker compose时如何忽略tmp文件夹在主机和来宾之间进行同步?
答案 0 :(得分:0)
您可以使用数据卷来存储tmp
,因为在安装应用程序目录之前,数据卷会从内置的docker映像中复制数据。
volumes:
- .:/app
- /path/to/tmp
答案 1 :(得分:0)
您可以将第二个卷添加到子路径。它将覆盖现有卷的内容。像这样:
app:
build: .
command: rails server -p 3000 -b '0.0.0.0'
volumes:
- .:/app
- ./empty-tmp:/app/tmp
这将有效地使/app/tmp
在主机系统上显示./empty-tmp
的内容。而不是显示./tmp
答案 2 :(得分:0)
我最终要做的是简单地映射所有要同步的文件夹:
- ./app:/app/app
- ./lib:/app/lib
- ./log:/app/log
- ./spec:/app/spec
似乎可以解决问题
答案 3 :(得分:0)
这曾经是可行的,如Add a volume to Docker, but exclude a sub-folder中所述。 docker-compose 1.25.0-rc3,文件语法v3,在那里提供的解决方案不再适合我。