我正在使用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
我已经为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
您看到的错误是因为您的项目包含一个global.json
文件,该文件将所需的SDK版本固定为2.0.2。但是,docker镜像包含较新的SDK版本(当前版本为2.1.3)。因为您用于构建的docker镜像中不存在2.0.2 SDK,所以它只是出错。
首先,如果您使用的是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图像)