2016-11-21 106 views
1

我將應用程序從.NET Core 1.0升級到1.1。在這個過程中,dotnet build命令開始使用.csproj項目文件,所以我擺脫了舊的project.json文件。一切正常,直到我嘗試運行docker build命令:.NET Core 1.1,Docker構建遇到無法使用csproj查找'project.json'

docker build -t示例。

當它擊中RUN [ 「DOTNET」, 「建」 在Dockerfile命令,我得到一個錯誤:

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"] 
+0

你確定project.json文件不再需要嗎?閱讀[發佈公告](https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/),他們討論了舊版本和新版本之間的區別。 – R0MANARMY

回答

5

當然,我只是張貼了這個尋找答案的天,那麼答案就出現了!在Docker中,「最新」並不指向1.1,儘管1.1是最新發布的版本。我改變了我的dockerfile的第一行改爲:

微軟/ DOTNET:1.1 SDK-的MSBuild

,現在建造的房屋。

0

你應該使用1.1.0-sdk-msbuild如果你的項目缺席projet.json