我的公司在一个配置为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卷挂载驱动。