使用VS2017托管代理构建的Team Services CI不支持Docker项目版本2.0

时间:2018-07-02 11:55:19

标签: 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>

1 个答案:

答案 0 :(得分:6)

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

  1. 更改docker-compose.dcproj文件

    • 将ProjectVersion从2.0更改为2.1
    • 将DockerTargetOS从Linux更改为Windows
  2. 更改docker-compose.ymldocker-compose.override.yml文件

    • 将版本从3更改为3.4

然后,该项目可以由Hosted VS2017代理成功构建。 这是基于您共享的modified project

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