找不到匹配命令“dotnet-out / CoreDemo.dll”的可执行文件

时间:2017-02-10 06:09:36

标签: docker

我正在尝试.netcore和docker。我写了一个.netcore project 并构建了一个图像。当我运行它的容器时,它会出现这个错误:

errors when my container fails to run

我的dockerfile如下所示:

# 选择microsoft/dotnet作为基础镜像
FROM microsoft/dotnet:1.0-sdk-projectjson

WORKDIR /app

# copy csproj and restore as distinct layers
COPY src/CoreDemo/project.json .
RUN dotnet restore

# copy and build everything else
COPY . .
RUN dotnet publish -c Release -o out

# 容器启动后执行的命令
ENTRYPOINT ["dotnet", "out/CoreDemo.dll"]

# 镜像维护者
MAINTAINER Uphie

# 容器暴露出的端口,可为多个
EXPOSE 5000  

我跟着这个solution编辑了project.json:

 "buildOptions": {
 "emitEntryPoint": true,
 "preserveCompilationContext": true,
 "outputName": "out"
 },

"outputName": "out"已添加,但无效。我不知道为什么会出现这个问题。

1 个答案:

答案 0 :(得分:0)

我搜索了docker容器中的文件,发现编译后的dll是“out”文件夹中的“out.dll”,显示“outputName”指向目标编译的dll。这是一个收获。

另一个令我困惑的问题是,如果没有指定“outputName”,我会在docker中使用.netcore 1.0.1获取“app.dll”,但在Windows和Linux中使用.netcore 1.1.0获取“CoreDemo.dll”。 .netcore差异是否会导致问题?