【发布时间】:2019-06-27 09:23:53
【问题描述】:
我有一个 .NET Core Web 应用程序项目,我在“启用 Docker 支持”复选框下选择了不正确的操作系统:
如何为现有项目更改此设置?需要明确的是,我想以 linux 为目标,而不是 docker 中的“切换到 Windows 容器...”。
【问题讨论】:
标签: docker asp.net-core visual-studio-2017 asp.net-core-webapi
我有一个 .NET Core Web 应用程序项目,我在“启用 Docker 支持”复选框下选择了不正确的操作系统:
如何为现有项目更改此设置?需要明确的是,我想以 linux 为目标,而不是 docker 中的“切换到 Windows 容器...”。
【问题讨论】:
标签: docker asp.net-core visual-studio-2017 asp.net-core-webapi
事实证明这很简单,我通过编辑 csproj 文件做到了:将 <DockerDefaultTargetOS>Windows</DockerDefaultTargetOS> 更改为 <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> 并重新加载。
我仍然不确定您会在 Visual Studio 的何处执行此操作(如果可能的话)。
【讨论】:
如果解决方案中只有一个项目,我将删除 API 项目中与 docker-compose.dcproj 和 Dockerfile 关联的项目。之后,我会右键单击并再次向该项目添加 docker 支持。
这将使用 linux 基础映像创建新的 dockerfile。
而且新的 dcproj 会提到 linux
<DockerTargetOS>Linux</DockerTargetOS>
【讨论】:
对于面向 .NET Core 的 ASP.NET Core 项目,有两个选项可通过工具添加 Docker 支持。在 Visual Studio 中打开项目,然后选择以下选项之一:
你应该会看到这样的窗口
然后选择您想要的操作系统。
您可以找到更多信息HERE
【讨论】:
就我而言,我使用的是 .Net Core 3.1 API 项目,只是编辑项目文件不起作用。我还必须指出 docker 图像是不同的。这就是我所做的:
在解决方案资源管理器中,右键单击项目,选择“卸载”
右键项目,编辑 (项目文件也可以在外面编辑,甚至右键,添加,Docker支持都工作一次)
正如其他人所说,改变:
收件人:
(仅将“Windows”更改为“Linux”)
更改图像名称。编辑名为“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 映像即可。
【讨论】: