如何更改.Net Core Web应用程序项目的Docker OS支持?

ekqde3dh  于 2023-02-11  发布在  Docker
关注(0)|答案(4)|浏览(167)

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

我如何为一个现有的项目更改这一点?而且要明确的是,我想针对Linux,而不是Docker中的“切换到Windows容器...”。

gfttwv5a

gfttwv5a1#

事实证明这很简单,我通过编辑csproj文件做到了这一点:将<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>更改为<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>并重新加载。
我仍然不确定您将在Visual Studio中的何处执行此操作(如果可能的话)。

r55awzrz

r55awzrz2#

如果解决方案中只有一个项目,我将删除API项目中与docker-compose.dcproj和Dockerfile关联的项目,然后右键单击并再次向该项目添加Docker支持。
这将使用linux基础映像创建新的dockerfile。
新的dcproj将提到linux

<DockerTargetOS>Linux</DockerTargetOS>
quhf5bfb

quhf5bfb3#

在我的例子中,我使用的是一个. Net Core 3.1 API项目,仅仅编辑项目文件是不起作用的。我还必须指出Docker图像是不同的。

  • 在解决方案资源管理器中,右键单击项目,选择"卸载"
  • 右键单击项目,并编辑它(项目文件也可以在外面编辑。甚至右键单击,添加,Docker支持工作一次)
  • 如其他人所述,更改:
<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>

收件人:

<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>

(Only将"Windows"更改为"Linux")

  • 更改图像名称。编辑名为"Dockerfile"的文件。更改:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS base

收件人:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

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

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

收件人:

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

映像名称可能不同。请确保将Windows映像更改为Linux映像。

rjjhvcjd

rjjhvcjd4#

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

  • 从“项目”菜单中选择“Docker支持”。
  • 右键单击解决方案资源管理器中的项目,然后选择Add〉Docker Support。

你会看到这样的Windows

并选择所需的操作系统。
您可以在这里找到更多信息

相关问题