docker - Docker for Windows:无法添加卷
问题描述
对于我们的产品,我们有一个文件夹,其中包含对每个客户都不同的配置文件。因此,此文件不在构建上下文中。
我试图向 docker-compose 文件添加一个卷。您可以看到下面的文件,这会导致以下错误
- 错误:对于 my_product 无法为服务 my_product 创建容器:无效的卷规范:'C:\path\to\container\conf:/var/my_config:rw'
而且我想将配置文件夹的内容复制到 docker 容器(在 dockerfile 中)
码头工人撰写文件:
version: '3.4'
services:
my_product:
image: ${DOCKER_REGISTRY}my_product
volumes:
- .\container\conf:/var/my_config:rw
build:
context: .\container\Web
dockerfile: Dockerfile
Dockerfile:
FROM microsoft/aspnet:4.7.2-windowsservercore-1803
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
COPY /var/my_config/. /inetpub/wwwroot/@conf/.
我无法修复 docker-compose 文件中的错误,我不确定复制 dockerfile 中的 my_conf 文件夹是否可行或一个好主意。
问候, 马尔科
更新了 docker-compose.yml
version: '3.4'
services:
my_product:
image: ${DOCKER_REGISTRY}my_product
environment:
COMPOSE_CONVERT_WINDOWS_PATHS: "0"
volumes:
- .\container\conf:/var/my_config:rw
build:
context: .\container\Web
dockerfile: Dockerfile
我仍然收到“无效的卷规格”错误。
解决方案
我认为您的 docker-compose 文件没有问题。尝试在 windows shell 中设置 COMPOSE_CONVERT_WINDOWS_PATHS=0。
如果您的本地驱动器是共享的,也请尝试设置 - 共享驱动器。
最后但并非最不重要的一点是,您可能会尝试在 docker compose 文件中单独创建卷,然后将其添加到容器中。
services:
my product:
build:
context: .\container\Web
dockerfile: Dockerfile
volumes:
newvolume:C:\path:/var/path/conf:rw
volumes:
newvolume:
推荐阅读
- javascript - 如何重写此函数以处理控制台错误 404
- python - 使用位于每列固定位置的值重命名 Pandas DataFrame 的列
- spring - 如何将 Spring Batch Metrics 发布到 Prometheus 网关
- sql - 重复用户名的新值 - SQL Server
- python - jinja2:重载模板如何加载所有变量
- javascript - 反应组件的计时器/计数器 - 使用 setInterval() 增加后值保持为 0
- java - XSL 样式表不保留编码值
- asp.net-mvc - 为什么我的 Web API 在发布到 Web API 时收到空值?不只为一个客户工作
- c++ - 我正在使用基于 arm 的拱门将数据发送到基于 x86 的拱门。在发送或接收数据之前,我是否必须编写代码来更改字节顺序?
- javascript - JS Bcrypt 到 c#