【问题标题】:docker + dotnet watch码头工人 + dotnet 手表
【发布时间】:2017-10-16 16:06:14
【问题描述】:

我使用 Visual Studio Code。

我创建了一个新的 projet dotnet new webapi。我在 .csproj 中引用了 dotnet-watch : <ItemGroup> <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" /> <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" /> <DotNetCliToolReference Include="Microsoft.Extensions.Caching.SqlConfig.Tools" Version="2.0.0" /> </ItemGroup>

然后,我构建我的 DockerFile。

我注意到奇怪的行为。 docker 映像检测到更改并重建解决方案。 bin 和 obj 目录中的二进制文件已经更新,但是当我调用 api 时,就好像从来没有任何变化一样。

FROM microsoft/aspnetcore-build:2.0

COPY . /app
WORKDIR /app

ENV ASPNETCORE_URLS=http://*:5000
EXPOSE 5000

ENV DOTNET_USE_POLLING_FILE_WATCHER=1
ENV ASPNETCORE_ENVIRONMENT=Development

Docker 命令:docker run -i -p 5000:5000 -v $(pwd):/app -t docker-todoapi

终于在容器终端:docker restore 和 docker Watch run

【问题讨论】:

  • 你能运行 docker images 看看你为那个图像有什么标签吗?它可能没有将构建标记为“最新”

标签: .net docker watch


【解决方案1】:

这篇博文描述了当前的问题,以及如何解决这些问题:

http://www.natemcmaster.com/blog/2017/11/13/dotnet-watch-and-docker/

总结您需要的更改:

使用 Microsoft.DotNet.Watcher.Tools2.1.0-preview1-27567 版本。

要获得此预览版本,您需要将 NuGet.config 文件添加到您的项目目录:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="aspnetcore-nightly" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

Docker 中使用的 binobj 目录必须与 Visual Studio Code 使用的目录分开,否则您将遇到当前遇到的问题。

为此,binobj 目录必须放在项目目录之外一个相当奇怪的位置,这可以通过将名为 Directory.Build.props 的文件添加到您的项目目录中来完成:

<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/../obj/</BaseIntermediateOutputPath>
    <BaseOutputPath>$(MSBuildProjectDirectory)/../bin/</BaseOutputPath>
  </PropertyGroup>
</Project>

您还必须从项目目录中删除旧的 binobj 目录。

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2017-02-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2019-07-22
    相关资源
    最近更新 更多