任何和所有的帮助表示赞赏!我特别尝试在 Prefect 流程中使用 DockerRun 流程配置。DockerRun 流配置使用 python Docker SDK 的“create_host_config”。如果我挂载本地路径,则 Docker 代理绑定和读取/写入路径没有问题。但是,当我通过网络路径时,我会收到 2 个错误中的 1 个,具体取决于我的配置方式。
- 第一个错误说我没有使用有效字符,我必须传递绝对路径(抱怨 \ 我相信)
- 第二个错误抱怨当我尝试传递我的用户名/密码以访问 Windows 网络路径时传递了无效的参数。
例如:
### THIS CODE ALLOWS ME TO BIND A LOCAL FILE PATH
from prefect.run_configs import DockerRun
import docker
with Flow("some_flow") as flow:
# execute tasks
flow.storage = Docker(...)
flow.run_config = DockerRun(labels=['my-label']
,host_config={'mounts':[docker.types.Mount(target='/public'
,source=r'//c/some/local/path'
,type='bind')
]
}
)
### THIS CODE THROWS BAD CHARACTER ERROR
flow.run_config = DockerRun(labels=['my-label']
,host_config={'mounts':[docker.types.Mount(target='/public'
,source=r'\\path\to\windows\network\shared\drive'
,type='bind')
]
### THIS CODE THROWS AN INVALID ARGUMENT ERROR
flow.run_config = DockerRun(labels=['my-label']
,host_config={'mounts':[
docker.types.Mount(target='/public'
,source='local'
,type='volume'
,driver_config=docker.types.DriverConfig(name='local'
,options={'type':'cifs'
,'device':r'\\path\to\windows\network\drive'
,'credentials':'user=<username>,domain=<windows_domain>,password=<password>'
}
)
)
]
}
)