我正在使用Ubuntu 16.04 LTS,
Docker-compose v 1.18.0-rc2, build 189468b
Docker version 17.12.0-ce-rc1, build ee2f943
运行此命令:使用docker dotnet publish -o / output 会导致此错误:
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
答案 0 :(得分:2)
您看到的错误是因为您的项目包含一个global.json
文件,该文件将所需的SDK版本固定为2.0.2。但是,docker镜像包含较新的SDK版本(当前版本为2.1.3)。因为用于构建的docker镜像中不存在2.0.2 SDK,所以它只是出错。
答案 1 :(得分:1)
首先,如果您使用的是Ubuntu,则Windows的docker无关紧要。
我看到“Dockerize a .NET Core application”(以及回购dotnet/dotnet-docker-samples
)中使用的dotnet publish -c Release -o out
图片以
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映像)