dotnet restore 在配置有代理的 bitbucket 管道上失败

Posted

技术标签:

【中文标题】dotnet restore 在配置有代理的 bitbucket 管道上失败【英文标题】:dotnet restore fails on a bitbucket pipeline configured with proxy 【发布时间】:2019-01-18 22:28:48 【问题描述】:

我将通过我的远程主机路由来自正在运行的管道的所有流量。不幸的是,当进程遇到dotnet restore 时,它会失败。我有关于代理问题的想法,但所有东西都在片刻之前工作得很好。请给我指引正确的方向。


这里的环境

bibucket-pipeline.yml 文件

image: microsoft/dotnet:2.1-sdk
pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script:
          - curl https://api.ipify.org
          - ssh -fN -C -4 -D 41337 user@remotehost
          - export http_proxy='socks5://localhost:41337'
          - export https_proxy='socks5://localhost:41337'
          - curl https://api.ipify.org
          - dotnet restore
          - dotnet build
          - dotnet test

dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   2.1.302
 Commit:    9048955601
Runtime Environment:
 OS Name:     debian
 OS Version:  9
 OS Platform: Linux
 RID:         debian.9-x64
 Base Path:   /usr/share/dotnet/sdk/2.1.302/
Host (useful for support):
  Version: 2.1.2
  Commit:  811c3ce6c0
.NET Core SDKs installed:
  2.1.302 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

错误

/usr/share/dotnet/sdk/2.1.302/NuGet.targets(114,5):错误:无法 加载源https://api.nuget.org/v3/index.json 的服务索引。 [/opt/atlassian/pipelines/agent/build/PCT.sln]

/usr/share/dotnet/sdk/2.1.302/NuGet.targets(114,5):错误:只有 代理允许使用“http”方案。 [/opt/atlassian/pipelines/agent/build/PCT.sln]

【问题讨论】:

【参考方案1】:

到现在(12 月 18 日),dotnet restore 仍然不支持 socks5 代理。请改用 HTTP 代理。

我使用 privoxy 将 socks5 代理流量转换为 http 代理。

【讨论】:

以上是关于dotnet restore 在配置有代理的 bitbucket 管道上失败的主要内容,如果未能解决你的问题,请参考以下文章

centos linux上的dotnet restore错误:访问路径被拒绝

为啥我的 dockerfile 中的 dotnet restore 步骤失败?

.NET Core的“dotnet restore”“dotnet build”和“dotnet run”命令都是用来干什么的?

GitLab Runner 在“dotnet restore”或“dotnet test”后停止

`dotnet build` 和 `dotnet restore` 永远挂起,没有任何错误

dotnet restore 不复制 NETStandard.Library 和其他框架包