.NET Core 1.1,Docker Build遇到无法使用csproj找到'project.json'

时间:2016-11-21 22:59:02

标签: docker dockerfile .net-core csproj

我将应用程序从.NET Core 1.0升级到1.1。在这个过程中,dotnet构建命令使用.csproj项目文件启动,所以我摆脱了旧的project.json文件。一切都很好,直到我尝试运行docker build命令:

docker build -t sample。

当它遇到Dockerfile中的RUN [“dotnet”,“build”]命令时,出现错误:

Sending build context to Docker daemon 3.418 MB
Step 1 : FROM microsoft/dotnet:latest
 ---> 3693707d4f7f
Step 2 : COPY . /app
 ---> 771e2b035ea1
Removing intermediate container c271f962518e
Step 3 : WORKDIR /app
 ---> Running in 6a07c60bab1d
 ---> e819bc2a9e25
Removing intermediate container 6a07c60bab1d
Step 4 : RUN dotnet restore
 ---> Running in 99d1cf514fa3
warn : The folder '/app' does not contain a project to restore.
 ---> cf063f4db808
Removing intermediate container 99d1cf514fa3
Step 5 : RUN dotnet build
 ---> Running in c2ed65925939
Couldn't find 'project.json' in current directory
The command 'dotnet build' returned a non-zero code: 1

但是没有'project.json'文件了。为什么我在运行docker build时会得到这个,但是当我运行dotnet build时却没有?

这是完整的Dockerfile:

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
CMD ["dotnet", "run", "--server.urls", "http://*:5000"]

2 个答案:

答案 0 :(得分:5)

当然,我只是在寻找答案的几天后发布了这个,然后答案出现了!在Docker中,“最新”并未指向1.1,即使1.1是最新发布的版本。我将dockerfile的第一行更改为:

FROM microsoft / dotnet:1.1-sdk-msbuild

现在正在建设中。

答案 1 :(得分:0)

如果您的项目缺席,请使用1.1.0-sdk-msbuild projet.json