【问题标题】:Dotnet restore Docker faildotnet 还原 Docker 失败
【发布时间】:2020-09-07 05:48:44
【问题描述】:

Docker 和命令 dotnet restore 存在问题。 我有 docker 文件:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["AuthAPI/AuthAPI.csproj", "AuthAPI/"]
COPY ["CommonCoreLibrary/CommonCoreLibrary.csproj", "CommonCoreLibrary/"]
RUN dotnet restore "AuthAPI/AuthAPI.csproj"
COPY . .
WORKDIR "/src/AuthAPI"
RUN dotnet build "AuthAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "AuthAPI.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY wait /wait
RUN chmod +x /wait
COPY /cert /root/.dotnet/https
ENTRYPOINT /wait && dotnet AuthAPI.dll

和 docker 撰写文件:

  authapi:
    image: ${DOCKER_REGISTRY-}authapi
    build:
      context: .
      dockerfile: AuthAPI/Dockerfile
    networks:
      - peopleapp
    environment:
      WAIT_HOSTS: db:5432
      WAIT_HOSTS_TIMEOUT: 300
    ports:
      - "8002:443"

当我运行命令时

docker-compose -f "docker-compose.yml" build

我有一个错误

Step 10/23 : RUN dotnet restore "AnalyticAPI/AnalyticAPI.csproj"
 ---> Running in 2d29e1367d51
  Determining projects to restore...
/usr/share/dotnet/sdk/3.1.300/NuGet.targets(128,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/src/AnalyticAPI/AnalyticAPI.csproj]
/usr/share/dotnet/sdk/3.1.300/NuGet.targets(128,5): error :   Connection refused [/src/AnalyticAPI/AnalyticAPI.csproj]
ERROR: Service 'analyticapi' failed to build: The command '/bin/sh -c dotnet restore "AnalyticAPI/AnalyticAPI.csproj"' returned a non-zero code: 1

有时它可以正常工作。有连接被拒绝的警告,但恢复成功。 我使用 Windows 10 + Hyper-V + Docker 桌面 + Linux 容器 + NET Core 3.1。

【问题讨论】:

  • 如果您尝试从浏览器加载此网址:api.nuget.org/v3/index.json 您是否有时会遇到相同的连接拒绝?如果是这种情况,则可能是您的连接和/或 nuget CDN 提供商存在问题。实际上,如果您位于葡萄牙或阿根廷,他们会遇到问题:status.verizondigitalmedia.com
  • 不,从浏览器加载成功。地点是俄罗斯
  • 我自己在与 Windows 10 中的 linux 容器连接时遇到了问题。如果要确保它是连通性的,请尝试删除 SDK 映像。如果是连接,它将无法下载图像。
  • @SteliosGiakoumidis ,尝试删除所有图像并运行 docker-compose build。拉动就是成功
  • 好吧,就是没有连接,你的docker deamon可以正常连接到互联网了。

标签: c# docker asp.net-core .net-core docker-compose


【解决方案1】:

我遇到了类似的问题。 这对我有用:

  1. 在还原前将 curl 命令添加到 dockerfile:
  1. 构建映像
  2. 从 dockerfile 中移除 curl 命令
  3. 再次构建映像

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-12
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    相关资源
    最近更新 更多