NoCLin/LightMirrors

content size of zero

Closed this issue · 2 comments

这边配置了镜像代理后,遇到了一个奇怪的问题。gitlab ci runner 运行job 的时候,出现部分镜像拉取报下面错误。然后,手动在宿主机拉取是正常的。而且,宿主机提前拉取了,就不会报下面的错误。

#2 ERROR: unable to fetch descriptor (sha256:0d83eed55f9e3539656956aacd9732922fd038a95281a4ddd3ec1b8438c581bd) which reports content size of zero: invalid argument
------
 > [internal] load metadata for docker.io/library/python:3.8-slim:
------

没有gitlab环境,无法复现。

建议升级最新版本试试,并附上runner和mirrors的log。

另外我会多加一些debug log,方便后续排查问题。

复现了,root cause 是没有处理好 HEAD 请求,HEAD 的 body是空bytes ,fastapi自动计算了 content-type = 0

https://github.com/NoCLin/LightMirrors/blob/2e1ae11ad4826b2fb2bf2ec7109f2690612ea405/src/mirrorsrun/proxy/direct.py#L94-99