Docker组成 – 在VSTS上

我有一个.net核心应用程序,我想在docker上运行。 我使用VS Docker工具来“添加容器支持”,并添加了一个docker-compose项目。

当我build立它时,我得到使用我的重新编译.net核心应用程序和我的dockerfile的容器。

这是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>a7cb971b-57ac-4704-851d-a322cf4f9e3f</ProjectGuid> </PropertyGroup> <ItemGroup> <None Include="docker-compose.ci.build.yml" /> <None Include="docker-compose.override.yml"> <DependentUpon>docker-compose.yml</DependentUpon> </None> <None Include="docker-compose.yml" /> </ItemGroup> </Project> 

这里是文件: docker-compose.yml

 version: '3' services: coresandbox: image: coresandbox build: context: ./CoreSandbox dockerfile: Dockerfile 

docker-compose.override.yml

 version: '3' 

docker-compose.ci.build.yml

 version: '3' services: ci-build: image: microsoft/aspnetcore-build:2.0 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./CoreSandbox.sln && dotnet publish ./CoreSandbox.sln -c Release -o ./obj/Docker/publish" 

现在我已经configurationVSTS以下任务:1.获取源代码2.构build服务 – Docker撰写任务看起来相当基本,我保留所有的默认值到位 VSTS任务截图

然后我从build立这个日志

 /usr/local/bin/docker-compose -f /home/alex/testagent/_work/2/s/docker-compose.yml -f /home/alex/testagent/_work/2/s/docker-compose.ci.build.yml -f /home/alex/testagent/.docker-compose.1505284937228.yml -p newsroomly/CoreSandbox build Building coresandbox Step 1/10 : FROM microsoft/dotnet:2.0-runtime ---> a2f5b3f42c0c Step 2/10 : ARG source ---> Using cache ---> 7a707828214b Step 3/10 : WORKDIR /app ---> Using cache ---> ff4262616387 Step 4/10 : COPY ${source:-obj/Docker/publish} . Service 'coresandbox' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder666656323/obj/Docker/publish: no such file or directory Building coresandbox Service 'coresandbox' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder666656323/obj/Docker/publish: no such file or directory /usr/local/bin/docker-compose failed with return code: 1 

显然,问题是dotnet构build任务不运行之前,撰写试图build立容器。

我也试过dotnet build my.sln但根据这个问题: https : //github.com/dotnet/cli/issues/6178这不支持,我得到error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found.

看起来docker-compose.ci.build.yml意味着你做了docker-compose.ci.build.yml docker-compose -f docker-compose.ci.build.yml up ,然后你做了docker-compose -f docker-compose.yml build

但是,当我这样做,我得到了关于缺less的SDK相同的错误

/src/docker-compose.dcproj : error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found.

所以回到我的问题 – 我怎样才能在VSTS上构build我的dcproj