我想在windows上使用docker-compose将windows驱动器挂载到windows容器中



我的公司在一个配置为S:(表示共享)的共享驱动器上存储了很多重要信息。我的应用程序需要使用这个目录中的文件,不幸的是,开发人员已经将S-drive硬编码到脚本中。有一天我想改变这一点,但现在我只想让它运行。

该软件是用Python编写的,将在Windows主机上的Windows容器中运行。我想用Docker-Compose来管理我的进程。

我正在尝试写一个docker-compose文件,该文件将主机的s驱动器映射到容器的s驱动器。

version: "3.9"
services:
python:
build:
target: my_app
context: .
image: my_org/my_app:latest
entrypoint: python.exe -m myapp.main
volumes:
- "s:/:s:/"

我这样运行:

set COMPOSE_CONVERT_WINDOWS_PATHS=1
docker-compose run python

我得到以下错误:

ERROR: for python  Cannot create container for service python: invalid volume specification: '/s/:s:/:rw'
ERROR: Encountered errors while bringing up the project

如何更改卷挂载规范,以便我的主机的s驱动器作为s驱动器挂载到我的容器中?

原来我误解了这里发生的事情。卷挂载失败是因为s驱动器是一个网络驱动器,而不是因为它是一个驱动器号表示的驱动器。

这是一个完全可以接受的音量规格:

"c:/:c:/temp"

然而,这不是,仅仅因为s:不是本地卷:

"s:/:c:/temp"

解决方案可能是使用Docker的CIFS卷挂载驱动。

最新更新