私はドッカーで実行したい.netコアアプリケーションを持っています。 VS Docker Toolsを使用して「コンテナサポートを追加」し、docker-compose
プロジェクトを追加しました。Docker-compose on VSTS
私はそれをビルドすると、私は再コンパイルされた.netのコアアプリケーションと私のドッカーファイルを使用して構築コンテナを取得します。ここで
ここ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"
:今すぐ 1.取得源 2.ビルドサービス - ドッカー作曲 をタスクはかなり基本的な見えます、私は、場所
ですべてのデフォルトを左Iビルド
/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
しかしやるときに私私は
/src/docker-compose.dcproj : error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found.
ので、不足しているSDKについて同じエラーを得た、ということでした戻って私の質問に - どのように私はここでVSTS
'docker-compose.ci.build.yml'をまったく使用しないのはどうですか? –
ホステッドエージェントまたはプライベートエージェントを使用していますか? MacまたはLinuxのビルドエージェントでビルドを実行しますか? –
Linux、プライベート。私は回避策が後でここに掲載されることを発見しました。 – zaitsman