不确定发生了什么,但直到上周,我都能够通过基于dotnet-framework-docker
容器的 Windows 容器中的基于 SSH 的 URI 克隆 git 存储库。现在,突然没有任何警告,当我去克隆 - 即使是公共存储库,我也收到此错误:
C:\>git clone [email protected]:atrauzzi/praxis.git
git clone [email protected]:atrauzzi/praxis.git
Cloning into 'praxis'...
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
这是一个Dockerfile
可以用来重现该问题的简单方法:
FROM microsoft/dotnet-framework
SHELL ["powershell"]
# Install Git
RUN New-Item -ItemType Directory -Force -Path 'c:/git';
RUN Invoke-WebRequest "https://github.com/git-for-windows/git/releases/download/v2.15.1.windows.1/Git-2.15.1-64-bit.exe" -OutFile "/git-installer.exe" -UseBasicParsing;
RUN Start-Process -FilePath C:/git-installer.exe -ArgumentList '/VERYSILENT', '/NORESTART', '/NOCANCEL', '/SP-', '/DIR="c:/git"' -PassThru | Wait-Process;
RUN rm /git-installer.exe;
目前我不确定是什么原因造成的。唯一可疑的是,如果我尝试运行基于 mingw 的ssh.exe
,它会打印一个空白行然后退出。
我的一些怀疑显然与 mingw 以及我在容器中运行事物的事实有关。
抄送https://github.com/Microsoft/dotnet-framework-docker/issues/61
答案1
这只是一个猜测 - 但我怀疑 dotnet 框架镜像曾经有 GitHub 的 SSH 密钥... 也就是说,调查https://github.com/git-for-windows/git/issues/1403作为根本/理想的解决办法。