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撰写任务看起来相当基本,我保留所有的默认值到位
然后我从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
- 将.NET Core控制台应用程序构build到Docker中
- 不能将参数添加到Dockerfile RUN命令
- 只是因为一个程序有一个graphics用户界面是否意味着它会崩溃在Windows泊坞窗?
- dotnet aspnetcore docker生成失败,错误代码为145
- 与docker的dotnet核心2
- 在VS 2017中构build和部署远程主机上的docker容器
- 使用Docker在单个主机(Windows)上运行多个网站
- 使用Docker自定义Visual Studio运行configuration
- 在涉及目标“DockerBuildServiceReferences”的目标依赖关系图中存在循环依赖关系