2017-10-03 4 views
1

Je suis en train de créer un développement Dockerfile pour le noyau dotnet 2. Ce que j'ai à ce jour est la suivante:Dotnet core 2 docker: Aucun exécutable trouvé commande correspondant à « dotnet-montre »

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 

Si je Exécuter:

dotnet restore 
dotnet watch run 

Dans le même dossier, tout semble fonctionner correctement (l'observateur démarre). Quand je lance à la place ce fichier docker (dans un environnement docker-Compose) il garde en criant:

Aucun exécutable trouvé de commande correspondant "dotnet-montre"

Mon fichier de configuration est la suivante:

<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> 

et que vous pouvez voir l'infâme contient:

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

ligne qui est généralement à l'origine du problème.

Comment faire dotnet watch sur docker?

Répondre

1

Je devais dotnet restore dans le ENTRYPOINT comme ceci:

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