【问题标题】:Team Services CI build with VS2017 hosted agent doesn't support docker project version 2.0使用 VS2017 托管代理构建的 Team Services CI 不支持 docker 项目版本 2.0
【发布时间】:2018-07-02 11:55:18
【问题描述】:

在 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 Tools for Containers 不支持项目版本“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>

【问题讨论】:

  • 你能通过将 system.debug 设置为 true 来显示整个详细的构建日志吗?您还可以一次性分享您的项目(或具有相同构建错误的示例项目)吗?
  • @MarinaLiu-MSFT - Example Project - Logs

标签: docker azure-devops


【解决方案1】:

由于您使用的是托管 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 agent 构建成功。 这是基于您分享的modified project

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

【讨论】:

  • 感谢 @MarinaLiu-MSFT 完美运行,我能够让构建与预览托管 Linux 构建代理一起使用。
  • 这实际上也帮助了我使用从 VSTS 下载的定义创建的自定义/私有 VS 2017 代理,我正在使用 Docker 进行 Pluralsight 课程并升级 dcproj 文件的 ProjectVersion 和版本设置这两个 Yaml 文件帮助了我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多