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已经正式发 ...
随机推荐
- #Alpha Scrum4
Alpha Scrum3 牛肉面不要牛肉不要面 Alpha项目冲刺(团队作业5) 各个成员在 Alpha 阶段认领的任务 林志松:音乐网页前端页面编写,博客发布 林书浩.陈远军:界面设计.美化 吴沂章 ...
- 【[IOI2014]Wall 砖墙】
好像随便一卡就最优解了 malao告诉我这道题挺不错的,于是就去写了写 这两个操作很有灵性啊,感觉这么有特点的数大概是需要分块维护的吧 但是并没有什么区间查询,只是在最后输出整个序列 于是我们就直接用 ...
- 【[APIO2008]免费道路】
\(kruskal\)好题 \(0\)边的数量在某些情况下是可以无限制的调控的,前提是所有必须存在的边都在生成树里了 所以应该分别求出有哪些边是必须在生成树里的,我们可以先从大到小排序,求出有哪些\( ...
- [XML123] FpML
Wiki Fpml FpML (Financial products Markup Language) is a business information exchange standard base ...
- 面试准备——(五)Jmeter
面试中遇到的问题: 1. 如何使用Jmeter进行并发测试 2. 如何设置并发量为1000 3. 如果http请求每个都不一样,如何配置 4. 如何设置sessionID 一.安装配置 1. 在Ter ...
- sftp协议下如何上传和下载文件
sftp连接: sftp hostname@IP/域名 1.上传: put filename 2.下载: get filename 参考连接:https://linuxstory.org/how-to ...
- 2017年秋招美团Java程序员开发,看我如何拿到offer
本人是一名本科毕业非计算机专业的程序员,面了阿里,结果没过,最后面上了美团,热乎乎的面经,昨天面的美团,虽然面完了HR面,但是感觉希望不大,希望能走运拿到offer吧.记性不是太好,有一些问题没能记住 ...
- CSP 试题编号201803-2 Java实现
package HB; import java.util.Scanner; public class Test_06 { public static void main(String[] args) ...
- iOS中UITextField常用设置和方法
//初始化textField并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; // ...
- Knowledge-Reserve
Knowledge-Reserve ComputerOperatingSystem 编译 静态库&动态库(Linux) 静态链接&动态链接 内存 内联函数&宏 Static&a ...