2017-02-10 40 views
1

我想.netcore和docker.I写了.netcore project,并建立一个image.When我运行它的容器它给出了这样的错误:没有可执行找到匹配命令“DOTNET输出/ CoreDemo.dll”

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"被添加,但它没有奏效。我不知道为什么会发生这种情况。

回答

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差异是否会导致问题?

相关问题