c# - 创建映像并将 ASP.NET Core .NET 5 Docker 映像部署到 ARM
问题描述
我在 .Net 5 Docker Image 中构建了一个 Net Core 5 Web API,并正在寻找一种方法来在 ARM v7 处理器(如带有 Debian 的 Tinker Board)上从该图像运行创建容器。
解决方案
最后,在以下网站上,我找到了在 ARM 处理器上构建和运行应用程序的基础:https ://hub.docker.com/_/microsoft-dotnet-aspnet
在页面上向下滚动到“完整标签列表”,然后为您的架构选择基础。
您只需要根据您的处理器架构更改基础'FROM ...'(在 DockerFile 中)并运行 Docker 构建命令,就会专门为您的 ARM 或任何其他设备构建映像。
例如。我在 Tinker Board 上运行 docker 容器,上面安装了 Debian,当前的 .NET 运行时是 .NET 5,所以我的 Dockerfile 如下所示:
不要盲目抄袭。先阅读上面的文字。
# Base for Debian ARM Linux
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim-arm32v7 AS base
# Setting working directory
WORKDIR /app
# Copy the files from Release Folder to working directory
COPY ./bin/Release/net5.0/. /app/
# Entrypoint of the app. change app.dll to the name of your project.
ENTRYPOINT ["dotnet", "app.dll"]
顺便提一句。为了最小化 docker 镜像的大小,我在开发机器上构建了一个发布版本,而不是将项目文件复制到镜像中,我只是从 RELEASE 文件夹中复制文件。
推荐阅读
- flutter - 如何解决“未处理的异常:键入'列表
' 不是 'PlaceDetails' 类型的子类型? - javascript - 如何在 vue 多选使用 api 中添加标题选项
- azure-api-management - 我们如何禁用 Azure Api 管理开发人员门户(旧版和新版)
- python - 在 Databricks 平台上使用大型数据集进行 PySpark 单元测试
- typescript - 将 NPM 中的 stenciljs 组件添加到 Vue.js 应用程序
- javascript - 谷歌应用脚本从 gmail 中删除特定附件
- amazon-web-services - 如何查找 AWS Secrets Manager 的缓存位置
- javascript - 在内部组件中使用 Jest 测试 onClick 功能
- wordpress - 重命名管理员单订单woocommerce中的文本
- c# - Botframework c#:在步骤上下文中重新提示用户输入并将值传递给另一个类