热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在树莓派(RaspberryPI)中使用Docker运行aspnetcore/dotnetcore应用

本文主要利用Microsoft提供的Dockerfile进行安装。虽然RaspberryPI3CPU支持armv8指令集,但是在dockerinfo还是识别为“armv7l”。所以

本文主要利用 Microsoft 提供的 Dockerfile 进行安装。

虽然Raspberry PI 3 CPU支持 armv8 指令集 ,但是在 docker info 还是识别为 “ armv7l”。所以安装镜像时一律选用 ARMv7 的镜像。

关于树莓派与 .NET Core 需要注意的地方

  1. .NET Core 2.0 支持 Arm32,提供运行时,但不提供SDK
  2. .NET Core 2.0 不支持 Pi Zero
  3. dotnet 社区对 PI 的使用指南 RaspberryPiInstructions

0.安装Docker

官方安装说明 :
Debian / Raspbian /Ubuntu
不在赘述。

1.准备 .NET Core Runtime 镜像

提供两种方法

  1. 前往Github 自行编译 Dockerfile

    build 命令如下

    docker build -t /dotnet:2.0-runtime-stretch-arm32v7 .
    
  2. 使用 Docker Microsoft 官方的仓库(Repository)

    pull 命令如下

    docker pull microsoft/dotnet:2.0-runtime-stretch-arm32v7
    

提示:

  1. 以上生成的 Runtime 版本为 2.0.7 (2018/04/25)。
  2. 虽然官方说不支持提供SDK镜像,但笔者还是找到了"官方"的.NET Core 2.1-preview2镜像。

pull 命令如下

docker pull microsoft/dotnet:2.1-sdk-stretch-arm32v7

2. 制作镜像

首先编译项目,其次制作Dockerfile

编译项目示例

dotnet publish -c Release -r debian-arm

Tip:

  1. 关于Build 更多命令,请参考docs.microsoft.com
  2. 关于运行时标识符的缩写(RID),请参考docs.microsoft.com
  3. RID 清单,请参考github.com

Dockerfile 如下

FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7
WORKDIR /app

COPY . .
ENTRYPOINT ["dotnet", "xxx.dll"]

使用dotnet build 命令后,在输出文件夹内找到publish 文件夹,上传文件夹内容及Dockerfile到树莓派,然后准备生成镜像

docker build 命令如下

docker build -t /: .

注意命令中需要指定上下文位置,笔者使用的是相对位置"."

最后运行容器,即可看到效果

docker run -p 80:80 --name  -d /:

其他常用命令

删除虚悬镜像(dangling image)

docker image prune

4.参考链接

microsoft/dotnet
https://hub.docker.com/r/microsoft/dotnet/
arm32v7
https://hub.docker.com/u/arm32v7/
How to install .NET Core on Raspberry Pi
https://dotnetcorechris.github.io/dotnetcoreonraspberrypi.html

在 树莓派(Raspberry PI) 中使用 Docker 运行 aspnetcore/dotnetcore 应用

知识共享署名-非商业性使用-相同方式共享 2.5 ***许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。


推荐阅读
author-avatar
happy王琦2010_190
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有