You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Docker构建.NET项目dotnet restore报NU1301错误求助

NU1301 Docker构建还原失败修复方案

问题本质

构建阶段.NET SDK容器无法正常访问NuGet源,和是否使用Visual Studio无关,Ubuntu环境下按以下步骤修复即可。

排查修复步骤

  • 第一步:验证容器外网连通性
    执行临时容器测试NuGet源访问能力:

    docker run --rm mcr.microsoft.com/dotnet/sdk:6.0-focal curl -I https://api.nuget.org/v3/index.json
    

    如果命令返回连接超时、域名解析失败,先修改Docker daemon的DNS配置:

    1. 编辑/etc/docker/daemon.json(不存在就新建),写入配置:
    {
      "dns": ["223.5.5.5", "114.114.114.114"]
    }
    
    1. 执行sudo systemctl restart docker重启Docker服务,重新跑上面的curl命令,直到返回200状态码。
  • 第二步:修正Dockerfile配置问题
    原Dockerfile存在两处问题:一是libcurl4装在了base运行时镜像里,build阶段的SDK镜像没装这个依赖,会导致NuGet的HTTP请求异常;二是如果官方源访问延迟高,可直接在构建阶段配置国内镜像源。
    修正后的完整Dockerfile如下:

    FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build
    # 构建阶段安装libcurl依赖,清理apt缓存减小镜像层体积
    RUN apt-get update && apt-get install -y libcurl4 && rm -rf /var/lib/apt/lists/*
    WORKDIR /src
    # 国内网络环境取消下面一行注释,使用国内NuGet源
    # RUN dotnet nuget add source https://nuget.cdn.azure.cn/v3/index.json -n nuget-cn
    COPY ["MyBackEnd/MyBackEnd.csproj", "MyBackEnd/"]
    RUN dotnet restore "MyBackEnd/MyBackEnd.csproj"
    COPY . .
    WORKDIR "/src/MyBackEnd"
    RUN dotnet build "MyBackEnd.csproj" -c Release -o /app/build
    
    FROM build AS publish
    RUN dotnet publish "MyBackEnd.csproj" -c Release -o /app/publish /p:UseAppHost=false
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "MyBackEnd.dll"]
    
  • 第三步:清理缓存重新构建
    旧的失败构建层会被Docker缓存,改完配置后执行无缓存构建:

    docker compose build --no-cache mybackend
    docker compose up
    

Dapr集成前置提示

单服务正常启动后,再往compose配置里加Dapr sidecar、placement服务即可,注意所有服务要加入同一个自定义Docker网络,给业务服务配置对应的Dapr注解,.NET项目引入Dapr SDK后不需要额外改服务调用地址,SDK会自动和本地sidecar通信完成服务发现与调用。


内容的提问来源于stack exchange,提问作者JustADude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:03:21