Dotnet core 2 docker:找不到可执行的匹配命令“dotnet-watch”

我正在尝试为dotnet core 2创build一个开发Dockerfile 。到目前为止,我有以下内容:

 FROM microsoft/aspnetcore-build:2.0 VOLUME /app WORKDIR /app COPY . ./ ENV ASPNETCORE_SERVER.URLS http://*:5000 ENV ASPNETCORE_ENVIRONMENT Development RUN dotnet restore ENTRYPOINT dotnet watch run --configuration Debug 

如果我运行:

 dotnet restore dotnet watch run 

从同一个文件夹,一切似乎都工作得很好(观察者开始)。 当我运行该docker文件(在docker-compose环境中)时,它一直在喊:

找不到可执行的匹配命令“dotnet-watch”

我的configuration文件如下:

 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" /> <PackageReference Include="Newtonsoft.Json" Version="10.0.3" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.0.0" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" /> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> </ItemGroup> </Project> 

正如你所看到的包含臭名昭着的:

 <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" /> 

这通常是导致问题的原因。

我怎样才能使docker上的dotnet watch工作?

我只需要像这样在ENTRYPOINT进行dotnet restore

 FROM microsoft/aspnetcore-build:2.0 VOLUME /app WORKDIR /app COPY . ./ ENV ASPNETCORE_SERVER.URLS http://*:5000 ENV ASPNETCORE_ENVIRONMENT Development ENTRYPOINT dotnet restore && dotnet watch run --configuration Debug