我有一个.net核心应用程序,我想在docker上运行。 我使用VS Docker Tools'添加容器支持',并添加了一个docker-compose
项目。Docker-compose on VSTS
当我建立它时,我得到使用我的重新编译的.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"
现在我已经配置VSTS完成以下任务: 1.获取源 2.构建服务 - 泊坞撰写 的任务看起来相当基本的,我将所有默认设置到位
然后我从构建中获取此日志
/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构建任务未运行之前,撰写尝试构建容器。
我也曾尝试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 -f docker-compose.ci.build.yml up
,然后你做docker-compose -f docker-compose.yml build
然而,当我这样做,我得到了同样的错误有关缺失SDK
/src/docker-compose.dcproj : error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found.
所以回到我的问题 - 如何建立我的VSTS
如何根本不使用'docker-compose.ci.build.yml',有帮助吗? –
您是否使用托管代理或私人代理?您是否在Mac或Linux构建代理上运行构建? –
Linux,私人。我发现一个解决方法将在稍后发布。 – zaitsman