博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
撸.NET Core的正确姿势
阅读量:5134 次
发布时间:2019-06-13

本文共 2118 字,大约阅读时间需要 7 分钟。

特点

案例基于刚发布的.NET Core 2.1

只需一台Linux服务器搞定一切,

全程无需自己配置dotnet环境,

需要熟悉git

docker基础知识可有可无, 过了下面几个步骤,你就已经入门Docker了

涉及到的软件: git, docker, nginx (非必需)

新手耗时

.net core未入门: 不适合

git 未入门: + 30分钟

docker未入门: +2 小时

linux未入门: +2 小时

nginx未入门: +1小时

对于一个.net core已入门的新手, 最多6个小时可以完成这个实验, 对于上述知识都有储备的人,20分钟基本就可以完成(时间取决于你的网速).

前置准备

一台Linux服务器, 能连接外网(需要在线安装git, docker, 以及下载dotnet docker相关镜像), 下面的命令以debian 8为例, ubuntu与debian 命令相同, centos需要吧apt-get 替换为yum

1. 部署git

这样一台git服务器就好了, 如果有远程的github或者oscgit可以用,那可以省略这一步

apt-get install git

useradd git

passwd git 设置git账户的密码

2. 准备代码上传

su git

mkdir samplecode

cd samplecode

git init

创建git库

提交代码到

Dockerfile:

Dockerfile文件放到.csproj文件的目录, 用来生成Docker镜像

FROM microsoft/dotnet:2.1-aspnetcore-runtime

ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-Miao.WebApi/obj/Docker/publish} .
COPY ${source:-buildreport} .
ENTRYPOINT ["dotnet", "Miao.WebApi.dll"]

3. 部署docker

apt-get install docker-ce
 
docker pull microsoft/dotnet:2.1-sdk 用来编译dotnetcore程序
docker pull microsoft/dotnet:2.1-aspnetcore-runtime 用来运行dotnetcore程序

4. 下载代码并编译打包

mkdir /src
cd /src
git clone
cd samplecode
 
docker run -t -v ~/.dotnet:/root/.dotnet -v ~/.nuget:/root/.nuget  -v ./:/src --workdir /srcmicrosoft/dotnet:2.1-sdk bash -c "dotnet restore ./sameplecode.sln && dotnet publish ./SamepleCode.csproj -c Release -o ./obj/Docker/publish"
docker build –t sampleweb:1.0 –file .\Dockerfile .\
 

5. 运行.net core 程序

docker run –d –it sampleweb:1.0 –p:8080:80
curl –I
确认可以打开, 证明部署成功
 

6. 通过Nginx做反向代理(非必需)

官方建议kestrel(.net core 内置web服务器外层再加一层反代), 加了反代之后IP也能正确获取到
apt-get install nginx
nginx 配置文件

upstream sampleweb {

     least_conn;
     server 127.0.0.1:8080max_fails=3 fail_timeout=30s;
     }
    
server {
     listen 80;
     server_name sampleweb.xxx.com;

    location / {

         proxy_pass
         proxy_read_timeout  90;

        proxy_http_version 1.1;

         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection $http_connection;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_cache_bypass $http_upgrade;
      }
}

 
 
 
 

转载于:https://www.cnblogs.com/feinian/p/9121919.html

你可能感兴趣的文章
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
HashPump用法
查看>>
cuda基础
查看>>
virutalenv一次行安装多个requirements里的文件
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
Android Bitmap 和 Canvas详解
查看>>
最大权闭合子图
查看>>