我将应用程序从.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"]
答案 0 :(得分:5)
当然,我只是在寻找答案的几天后发布了这个,然后答案出现了!在Docker中,“最新”并未指向1.1,即使1.1是最新发布的版本。我将dockerfile的第一行更改为:
FROM microsoft / dotnet:1.1-sdk-msbuild
现在正在建设中。
答案 1 :(得分:0)
如果您的项目缺席,请使用1.1.0-sdk-msbuild projet.json