是否可以将两个主机目录绑定到同一个容器目录而不覆盖其内容?
我需要维护第一个绑定安装的源+新的源(来自第二个绑定安装的源)。我知道包含相同名称的文件和目录可以被覆盖,但是其余的呢?无论如何,Docker 总是会覆盖它们吗?
请参见以下示例:
# Dockerfile
FROM someimage
COPY app /app
COPY consumers/site1/theme /app/src/styles
# docker-compose.yml
services:
base:
platform: linux/amd64
build:
context: "."
dockerfile: local/Dockerfile.consumer
ports:
- "3000:3000"
volumes:
- ./app/src:/app/src
- ./consumers/site1/theme:/app/src/styles
我的第二个绑定安装中的文件docker-compose
覆盖了...下的所有内容/app/src/styles
有什么方法可以实现这一点吗?解决方法?
Docker 没有类似的选项,但在 Docker 之外(或者甚至在内部,还没有测试过)您可以使用overlayfs安装。然后您可以安装
./styles
在所需的位置。编辑:似乎您甚至可以直接在 docker-compose.yml 文件中定义它
摘自https://stackoverflow.com/a/58770954/212107: