Docker:运行dotnet发布-o / output会导致CLI出现非零错误

问题描述 投票:1回答:2

我正在使用Ubuntu 16.04 LTS,


Docker-compose v 1.18.0-rc2, build 189468b
Docker version 17.12.0-ce-rc1, build ee2f943

运行此命令:dotnet publish -o / output with docker导致此错误:


ERROR: Service 'generator' failed to build: The command '/bin/sh -c 
dotnet publish -c Release -o out' returned a non-zero code: 145

enter image description here

我已经为Ubuntu安装了.NET SDK,但不确定如何解决此错误;它只是不会创建该发布文件夹;这是dotnet --info

joel @ worker-2:〜/ workspace / asp(copy)/ api $ dotnet --info .NET命令行工具(2.0.2)

产品信息:版本:2.0.2提交SHA-1哈希:a04b4bf512

运行时环境:操作系统名称:ubuntu操作系统版本:16.04操作系统平台:Linux RID:ubuntu.16.04-x64基本路径: /usr/share/dotnet/sdk/2.0.2/

Microsoft .NET核心共享框架主机

版本:2.0.0 Build:e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d

Link to the same question worded differently with more error logs

asp.net docker .net-core docker-compose docker-for-windows
2个回答
2
投票

您看到的错误是因为您的项目包含一个global.json文件,该文件将所需的SDK版本固定为2.0.2。但是,docker镜像包含较新的SDK版本(当前版本为2.1.3)。因为您用于构建的docker镜像中不存在2.0.2 SDK,所以它只是出错。


1
投票

首先,如果您使用的是Ubuntu,则Windows的docker不相关。

我看到dotnet publish -c Release -o out用于“Dockerize a .NET Core application”(以及repo dotnet/dotnet-docker-samples)的图像开头

FROM microsoft/aspnetcore-build:2.0 AS build-env

它是一个多拱的标签,这意味着它将拉取Windows或Linux容器,具体取决于主机(这里是Ubuntu) 但是你在previous question之后的pluralsight.com course docker-images-containers-aspdotnet-core中提到了,那可能只在Windows上完成(意味着Windows服务器2016/2017,能够执行Windows图像)

© www.soinside.com 2019 - 2024. All rights reserved.