0

ありとあらゆる助けに感謝します!特に、Prefect フロー内で DockerRun フロー構成を使用しようとしています。DockerRun フロー構成は、python Docker SDK の「create_host_config」を使用します。ローカル パスをマウントすると、Docker エージェントはパスへのバインドと読み取り/書き込みに問題はありません。ただし、ネットワーク パスを渡すと、構成方法に応じて 2 つのエラーのうちの 1 つが発生します。

  1. 最初のエラーは、有効な文字を使用していないため、代わりに絶対パスを渡す必要があることを示しています ( \ について不平を言っていると思います)
  2. 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>'
                                                                                                            }
                                                                                                    )  
                                                            )
                                                        ]
                                                }           
                            )
4

0 に答える 0