ありとあらゆる助けに感謝します!特に、Prefect フロー内で DockerRun フロー構成を使用しようとしています。DockerRun フロー構成は、python Docker SDK の「create_host_config」を使用します。ローカル パスをマウントすると、Docker エージェントはパスへのバインドと読み取り/書き込みに問題はありません。ただし、ネットワーク パスを渡すと、構成方法に応じて 2 つのエラーのうちの 1 つが発生します。
- 最初のエラーは、有効な文字を使用していないため、代わりに絶対パスを渡す必要があることを示しています ( \ について不平を言っていると思います)
- 2 番目のエラーは、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>'
}
)
)
]
}
)