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已经正式发 ...
随机推荐
- PhoneGap获取设备信息
一. 获取设备信息的方法列表(如果没有或者检测不出来就显示undefined) 1.device.name 设备名称(一些国产机检测不出来) 2.device.model ...
- BZOJ2780:[SPOJ8093]Sevenk Love Oimaster(广义SAM)
Description Oimaster and sevenk love each other. But recently,sevenk heard that a girl named ChuYuXu ...
- 【php】获取ip
addBoard.php中获取到ip $ip=$_SERVER['REMOTE_ADDR']; 通过ajax采取POST方式发送到服务器 $("#submit").on(" ...
- Nexus修改admin密码及其添加用户
Nexus之所以修改密码,是为了安全起见,个人学习的话,本地windows或者虚拟机即可,外网服务器建议将密码修改复杂点,而且强烈建议端口不要8081,最好将其改为其他的.同样也是为了安全起见. 添加 ...
- 使用java.util.List的subList方法进行分页
java.util.List中有一个subList方法,用来返回一个list的一部分视图. List<E> subList(int fromIndex, int toIndex); 它返回 ...
- CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第三件事就是使用 TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯
/* * data_process.c * * Created on: 2018年7月5日 * Author: admin */ #include <ti/sysbios/knl/Task.h& ...
- LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript
给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...
- Oracle下通过EXPDP导出某用户下的所有表,实例
一开始在所数据库表导入,导出的时候,经常发现含有BLOB等大数据类型文件无法简单正常的导入导出(imp/dmp),然后在网上得知oracle 10以后有了(impdp/dmpdp)命令,数据导入导出的 ...
- Xcode引入了第三方的类库之后真机调试提示莫名其妙的错误
其中的解决方法就是修改Build Setting里面的Build Active Architecture Only(仅仅编译动态代码),将这个里面的值修改为YES即可.
- react 第一个组件 “hello world!”
一:在src下面新建Welcome.js 二:在Welcome.js中使用类式写法: import React from "react" class Welcome extends ...