我正在尝试.netcore和docker。我写了一个.netcore project 并构建了一个图像。当我运行它的容器时,它会出现这个错误:
我的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 :(得分: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差异是否会导致问题?