aspnetcore 2.1 发布到树莓派3linux的艰辛路程
发布至docker for windows.
提示:
image operating system "windows" cannot be used on this platform
解决:
网上查了,说是运行环境不对,要在win虚拟机上执行,都是把docker的环境切换成windows。
不过我们如果在创建项目的时候,选择docker文件是“linux”版本,就不需要windows版本,所以我们保持docker默认的linux版本,只需要确保新建项目时生成的DockerFile,不是基于windows就好。
由于是树莓派,这里准备把aspnetcore2.1项目,发布为 linux-arm 方式。
# 首先,定位到要发布的项目根目录,也就是csproj文件所在位置,按住shift键右击,选择在此处打开命令行/powershell,两个选项差不多这个看系统设定。
# 以 linux-arm 方式发布
dotnet publish -c Release -r linux-arm
之后,我们将目光放到树莓派上,我用的是三代,也就是ARMv7,所以core sdk是没法装的,只能使用runtime的方式,所以最简单的DockerFile如下:
# 添加基础镜像:docker会从网络下载这个镜像
FROM microsoft/dotnet:2.1-sdk-stretch-arm32v7 AS build
MAINTAINER suntai
#容器中系统的工作空间
WORKDIR /app
#拷贝当前文件夹下的文件到容器中系统的工作空间(注意:“.”后面有空格)
COPY . /app #设置程序要侦听的端口
EXPOSE 80
# 下面这里是dotnetcore runtimez执行方式
ENTRYPOINT ["./WebCoreHost"]
之后就可以通过树莓派开启ssl,用sftp从微软平台传文件到树莓派的linux平台了。当然要传输的目录就是刚才生成的目录,则你可能要拷贝的目录就是
bin\Release\netcoreapp2.\linux-arm\publish\
先直接运行下试试,进入我们程序所在位置。
# 我们先把程序入口点设置为可运行,当然你可以设置权限为755,也可以用+x方式
sudo chmod +x ./WebCoreHost
# 然后我们基于runtime执行
./WebCoreHost
# aspnetcore runtime会执行程序,如果什么都不管的话,是启用5000端口。
当然,之后如果你想结束程序测试,或者端口被占了,可以kill掉程序
# 显示占用端口的程序
sudo netstat -ltp
# 结束指定程序,比如说程序标识是233
sudo kill
在树莓派上创建容器并运行程序,注意句点的位置,表示操作当前目录(linux docker for aspnetcore)
# 将当前目录添加到为docker镜像,起一个别名叫做aspnetapp。
docker build -t aspnetapp .
# 以关闭后自动销毁的方式,启动一个容器,侦听外部的8000端口,并转发至程序内部的80端口
docker run --rm -it -p : aspnetapp
提升当前操作用户操作Docker的权限,不需要sudo,也能解决 permission denied
# 如果还没有 docker group 就添加一个
sudo groupadd docker # 将用户加入该 group 内。然后退出并重新登录就生效啦
sudo gpasswd -a ${USER} docker # 重启 docker 服务
sudo service docker restart # 切换当前会话到新 group 或者重启 X 会话
newgrp - docker
常用的Docker容器和镜像操作
# 停用全部正在运行的容器
docker stop $(docker ps -q) # 删除全部容器
docker rm $(docker ps -aq) # 一条命令实现停用并删除容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq) # 删除所有镜像
docker rmi $(docker images -q) # 停止并删除none镜像
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
aspnetcore 2.1 发布到树莓派3linux的艰辛路程的更多相关文章
- aspnetcore webapi 解决发布以后每隔一段时间请求变缓慢
项目:netcore webapi 3.1 平台:windows server 2008 r2 服务器:IIS 7.5 项目发布到IIS以后第一次请求特别慢大概7.8秒,然后每隔5分钟请求一次大概2. ...
- 使用脚本将AspNetCore发布到IIS上
首先你必须要了解的是,没有脚本的情况下,如何把AspNetCore的应用发布到IIS上. 大致分为这些步骤: 安装MS C++ 2015 x86&x64 安装正确版本的.NET Core Ru ...
- 在树莓派2上安装 Windows 10
微软在2015年4月29日发布了树莓派玩家期待已久的 Windows 10 物联网核心预览版(Windows 10 IoT Core Insider Preview Image for Raspber ...
- OpenEuler树莓派基础实验
OpenEuler树莓派基础实验 1.任务详情 1. 参考https://www.cnblogs.com/rocedu/p/14615565.html 完成OpenEuler的安装,提交过程博客和截图 ...
- crontab执行时间和系统时间不一致
最近发现一个非常奇怪的问题,症状如下: crontab 定时任务 配置时间 是 10 5 * * * (每日凌晨5点10分执行) 运行脚本时间却是 18:10左右 Dec 24 05:10:01 ht ...
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...
- ASP.NET Core 2.0 Preview 1 中贴心的新特性
西雅图时间5月10日,微软在 Build 2017 大会上发布了 ASP.NET Core 2.0 Preview 1 ( 详见 Announcing ASP.NET 2.0.0-Preview1 a ...
- Asp.Net Core 应用配置
五种读取方式 五种读取方式依赖于 IConfiguration 和 IConfigurationRoot 对象 一.初级写法 //不区分大小写 string connectionString = _c ...
- CentOS 7 ARM 版发布:支持树莓派2/香蕉派/CubieTruck
CentOS 7 ARM 版发布:支持树莓派2/香蕉派/CubieTruck 来自CentOS团队的Karanbir Singh很高兴地宣布,面向ARM硬件架构的CentOS 7 Linux已经正式发 ...
随机推荐
- java内部类之成员内部类实例
第一个是如何实现同时继承两个类 public class MultiExtendsDemo { public static void main(String[] args) { // TODO Aut ...
- 【[国家集训队] Crash 的文明世界】
先写一个五十分的思路吧 首先这道题有一个弱化版 [POI2008]STA-Station 相当于\(k=1\),于是就是一个非常简单的树形\(dp\)的\(up\ \ and\ \ down\)思想 ...
- D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...
- PAT——1025. 反转链表
给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后 ...
- vlc-android native调试配置
1, 按照官网给出的链接,git clone代码,配置好android sdk,ndk...后运行compile.sh; 2, 出现一个protobuf相关的问题(貌似要求protobuf3),自己去 ...
- SDN测量论文粗读(二)9.21
Monocle: Dynamic,Fine-Grained Data Plane Monitoring 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Monocle:检测交换机中硬件 ...
- CC2540 低功耗串口, POWER_SAVING 模式 下 串口 0 的使用
低功耗 模式 下 使用 串口 , 因为 PM2 或者 PM3 状态下 32M晶振 是不工作 的,根据手册得知没有32M晶振, 串口是不能工作的,但是可以使用 外部中断,因此,我把 串口的接收引脚 ...
- LeetCode29.两数相除 JavaScript
给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...
- 手把手教你创建私有podspec
本文来自 网易云社区 . CocoaPods是iOS非常好用的类库管理工具,可以非常方便的管理和更新项目中使用到的第三方库,以及将自己项目中的公共组件交由它管理. 工作中比较常用到的是通过CocoaP ...
- My SQL常用操作汇总
写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主. # !每行命令必须以分号(;)结尾 先通过命令行进入数据库客户端 ...