我有一個.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