VS2017构建失败-DOCKER_REGISTRY

时间:2018-06-30 11:08:34

标签: docker visual-studio-2017 .net-core

我开始使用Docker,并熟悉.NET Core和Visual Studio2017。我创建了一个新的名为“ WebApplicationCore21”的Web应用程序(剃刀页面),并启用了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

已验证步骤

  • 在主板和Windows 10 Pro中启用了Hyper-V
  • 已安装Windows版Docker
  • 可以同时登录Docker Hub和客户端
  • 将Docker客户端从Linux切换到Windows容器

我还注意到,尽管我可以使用集线器凭据登录Docker客户端,但是尝试在PowerShell中运行docker login并使用相同的用户名/密码会生成以下内容:

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

这可能有用或无关。我需要的是从VS2017运行。

2 个答案:

答案 0 :(得分:4)

今天早晨,我根据unauthorized: incorrect username or password错误发现了我的solution

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

答案 1 :(得分:0)

Option-01-您可能需要替换group 'carpecoin' version '1.0-SNAPSHOT' buildscript { ext.kotlin_version = '1.2.41' ext.junitJupiterVersion = '5.0.3' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.3' } } apply plugin: 'java' apply plugin: 'kotlin' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" testImplementation group: 'junit', name: 'junit', version: '4.12' // JUnit Jupiter API and TestEngine implementation testCompile("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}") // To avoid compiler warnings about @API annotations in JUnit code testCompileOnly('org.apiguardian:apiguardian-api:1.0.0') implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0' implementation 'io.reactivex.rxjava2:rxjava:2.1.1' implementation 'com.google.firebase:firebase-admin:6.0.0' implementation 'com.google.firebase:firebase-database:15.0.0' } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }image: ${DOCKER_REGISTRY}xxxxxxxxx中的image:xxxxxx

Option-02将名称DOCKER_REGISTRY值设置为env的变量添加到任何文件夹。如果出现类似name必须为小写的错误,则将docker-compose.yml的大小写更改为DOCKER_REGISTRY

docker_registry应该在您的解决方案目录中。