首页 > 解决方案 > VS2017 构建失败 - DOCKER_REGISTRY

问题描述

我开始使用 Docker 并熟悉 .NET Core 和 Visual Studio 2017。我创建了一个名为“WebApplicationCore21”的新 Web 应用程序(Razor Pages),启用了 Docker 支持并收到了一个不错的 Dockerfile。

FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1709 AS base
WORKDIR /app
EXPOSE 62911
EXPOSE 44323

FROM microsoft/dotnet:2.1-sdk-nanoserver-1709 AS build
WORKDIR /src
COPY WebApplicationCore21/WebApplicationCore21.csproj WebApplicationCore21/
RUN dotnet restore WebApplicationCore21/WebApplicationCore21.csproj
COPY . .
WORKDIR /src/WebApplicationCore21
RUN dotnet build WebApplicationCore21.csproj -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplicationCore21.dll"]

虽然项目构建正常,但在运行(F5) 时出错,说明:

Description: The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.
Project: docker-compose
File: Microsoft.VisualStudio.Docker.Compose.targets
Line: 363

验证步骤

我还注意到,虽然我可以使用我的集线器凭据登录 Docker 客户端,但尝试docker login在 PowerShell 中运行并使用相同的用户名/密码会产生以下结果:

Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password

也许这是有帮助的,也许是无关的;我只需要从 VS2017 运行。

标签: dockervisual-studio-2017.net-core

解决方案


我今天早上根据错误找到了我的解决方案。unauthorized: incorrect username or password

当我在系统托盘中检查 Docker for Windows 时,我使用我的 Docker Hub 电子邮件地址登录。Docker for Windows 认为这是可以接受的,这是一种误导。这样做会给它与之交互的应用程序(如 VS2017)带来麻烦。使用我的 Docker Hub 用户名解决了它。


推荐阅读