首页 文章

.NET Core 1.1,Docker Build与csproj遇到了无法使用't find ' project.json'

提问于
浏览
2

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

docker build -t示例 .

当它到达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 回答

  • 5

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

    从microsoft / dotnet:1.1-sdk-msbuild

    现在它正在建设中 .

  • 0

    如果你的项目缺少projet.json,你应该使用1.1.0-sdk-msbuild

相关问题