使用VS2017托管代理构建的Team Services CI不支持docker project version 2.0

Sha*_*ane 3 docker azure-devops

VS 2017中添加了具有docker支持的ASP.NET Core 2项目,在本地运行良好,但在VSTS生成中生成失败,出现以下错误:

2018-06-29T16:07:50.4095117Z ## [错误] C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.Docker.Sdk \ build \ Microsoft.VisualStudio.Docker。 Compose.targets(151,5):错误:当前的Visual Studio容器工具不支持项目版本“ 2.0”。

我正在尝试构建Team Services并发布到Azure中容器的应用程序服务。

docker-compose.dcproj内容:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
    <PropertyGroup Label="Globals">
    <ProjectVersion>2.0</ProjectVersion>
    <DockerTargetOS>Linux</DockerTargetOS>
    <ProjectGuid>cc9f4ebc-dd9f-4592-9533-b4954b467670</ProjectGuid>
    <DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
    <DockerServiceUrl>http://localhost:{ServicePort}</DockerServiceUrl>
    <DockerServiceName>status</DockerServiceName>
  </PropertyGroup>
  <ItemGroup>
      <None Include="docker-compose.override.yml">
      <DependentUpon>docker-compose.yml</DependentUpon>
    </None>
    <None Include="docker-compose.yml" />
     <None Include=".dockerignore" />
   </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

Mar*_*Liu 8

由于您使用的是Hosted VS2017代理,因此仅安装了VS2017,并且只能使用docker的Windows容器。因此,请进行以下更改(例如,作为共享示例项目):

  1. 变更docker-compose.dcproj档案

    • 将ProjectVersion从更改2.02.1
    • 将DockerTargetOS从更改LinuxWindows
  2. 变更docker-compose.ymldocker-compose.override.yml归档

    • 将版本从更改33.4

然后,该项目可以通过Hosted VS2017代理成功构建。这是基于您共享的修改后的项目

顺便说一句:您也可以使用私人代理来构建您的项目。如果可以在本地成功构建,则使用私有代理可以通过VSTS构建成功地构建项目。