Docker 无法在OpenShift online平台上加载git lfs文件

Docker 无法在OpenShift online平台上加载git lfs文件,docker,kubernetes,containers,openshift,git-lfs,Docker,Kubernetes,Containers,Openshift,Git Lfs,我需要在OpenShift online平台上部署一个web应用程序,其中包括使用存储在github repo上的文件和lfs 当我构建应用程序时,我收到以下消息: ---> Running application from Python script (app.py) ... generated new fontManager Traceback (most recent call last): File "app.py", line 72, in <mod

我需要在OpenShift online平台上部署一个web应用程序,其中包括使用存储在github repo上的文件和lfs

当我构建应用程序时,我收到以下消息:

---> Running application from Python script (app.py) ...
generated new fontManager
Traceback (most recent call last):
  File "app.py", line 72, in <module>
   model.load_state_dict(torch.load(WEIGHTS_FILE, map_location=device))
  File "/opt/app-root/lib/python3.6/site-packages/torch/serialization.py", line 585, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/opt/app-root/lib/python3.6/site-packages/torch/serialization.py", line 755, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, 'v'.
-->从Python脚本(app.py)运行应用程序。。。
生成的新fontManager
回溯(最近一次呼叫最后一次):
文件“app.py”,第72行,在
model.load\u state\u dict(torch.load(权重文件,映射位置=设备))
文件“/opt/app root/lib/python3.6/site packages/torch/serialization.py”,第585行,已加载
返回\u旧版\u加载(打开的\u文件、映射\u位置、pickle\u模块、**pickle\u加载\u参数)
文件“/opt/app-root/lib/python3.6/site-packages/torch/serialization.py”,第755行,加载
magic_number=pickle_module.load(f,**pickle_load_参数)
_pickle.UnpicklingError:加载键“v”无效。
我猜原因一定是重量文件是由lfs存储的。看起来OpenShift只是git拉动回购,而不是git lfs拉动

当我使用其他web服务平台(如GCP、Azure)时,我习惯于git将整个回购拉到终端

那么,有没有可能打开一个终端控制台,然后我就可以拉回购协议?或者,还有其他选择吗


PS:我正在用Docker文件构建它,这是我的回复:

我不确定git lfs在构建Docker映像时是如何发挥作用的。以及构建策略的类型(我假设docker构建策略,因为这里有docker文件)。 我通常将模型文件与Docker图像分开,以使图像大小更小

相反,我创建了一个持久卷装载,并在其中加载了模型文件。然后将卷装入作为DeploymentConfig的一部分。这与docker run-v SOURCE:DESTINATION IMAGE_NAME非常相似

资源


看看这篇文章——它可能会解决你的问题。。。