【问题标题】:How do you change Docker OS Support for a .Net Core Web Application Project?如何更改 .Net Core Web 应用程序项目的 Docker OS 支持?
【发布时间】:2019-06-27 09:23:53
【问题描述】:

我有一个 .NET Core Web 应用程序项目,我在“启用 Docker 支持”复选框下选择了不正确的操作系统:

如何为现有项目更改此设置?需要明确的是,我想以 linux 为目标,而不是 docker 中的“切换到 Windows 容器...”。

【问题讨论】:

    标签: docker asp.net-core visual-studio-2017 asp.net-core-webapi


    【解决方案1】:

    事实证明这很简单,我通过编辑 csproj 文件做到了:将 <DockerDefaultTargetOS>Windows</DockerDefaultTargetOS> 更改为 <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> 并重新加载。

    我仍然不确定您会在 Visual Studio 的何处执行此操作(如果可能的话)。

    【讨论】:

    • 在更高版本的 VS(例如 2019)上执行此操作时,它将检测 .csproj 文件中的更改并提示您进一步更改项目的操作系统支持以反映该更改。显然,它不仅仅是更改项目文件,但似乎 VS 能够为您处理。
    【解决方案2】:

    如果解决方案中只有一个项目,我将删除 API 项目中与 docker-compose.dcproj 和 Dockerfile 关联的项目。之后,我会右键单击并再次向该项目添加 docker 支持。

    这将使用 linux 基础映像创建新的 dockerfile。

    而且新的 dcproj 会提到 linux

    <DockerTargetOS>Linux</DockerTargetOS>
    

    【讨论】:

      【解决方案3】:

      对于面向 .NET Core 的 ASP.NET Core 项目,有两个选项可通过工具添加 Docker 支持。在 Visual Studio 中打开项目,然后选择以下选项之一:

      • 从项目菜单中选择 Docker 支持。
      • 在解决方案资源管理器中右键单击项目并选择添加 > Docker 支持。

      你应该会看到这样的窗口

      然后选择您想要的操作系统。

      您可以找到更多信息HERE

      【讨论】:

        【解决方案4】:

        就我而言,我使用的是 .Net Core 3.1 API 项目,只是编辑项目文件不起作用。我还必须指出 docker 图像是不同的。这就是我所做的:

        1. 在解决方案资源管理器中,右键单击项目,选择“卸载”

        2. 右键项目,编辑 (项目文件也可以在外面编辑,甚至右键,添加,Docker支持都工作一次)

        3. 正如其他人所说,改变:

          Windows

          收件人:

          Linux

          (仅将“Windows”更改为“Linux”)

        4. 更改图像名称。编辑名为“Dockerfile”的文件。变化:

          来自 mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS 基础

          收件人:

          来自 mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS 基础

          我也相应地更改了构建名称。更改:

          来自 mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1903 AS build

          收件人:

          来自 mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build

        图像名称可能不同。只需确保将 Windows 映像更改为 Linux 映像即可。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-24
          • 2017-07-30
          • 1970-01-01
          • 1970-01-01
          • 2018-12-08
          • 1970-01-01
          • 1970-01-01
          • 2023-04-07
          相关资源
          最近更新 更多