.Net5网站发布到IIS、CentOS8 Service和部署到docker

发布到IIS

  1. 到下面这个网址下载ASP.NET Core Runtime 5.0.8;
    https://dotnet.microsoft.com/download/dotnet/5.0
  2. 进入IIS,新建一个应用程序池,.Net CLR版本选择“无托管代码”;
  3. 新建网站,选择刚才的应用程序池;
  4. O98K了!测试环境是阿里云的windows server 2008 R2,原装IIS+.net 5 runtime。

发布到CentOS 8

测试环境是VMWare Workstation 15 Pro 15.5.6 build-16341506 + CentOS 8 64位

安装SDK/Runtime:

sudo dnf install dotnet-sdk-5.0
sudo dnf install dotnet-runtime-5.0

用XFTP把发布后的文件copy到Linux磁盘目录中(注意:用vs2019发布的时候,目标运行时选择“可移植”);
运行我们的网站程序:

dotnet CoreWebMVC.dll --urls="http://*:8080" --ip="127.0.0.1" --port="8080"

# 成功启动后,有以下提示:
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://[::]:8080
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /var/www/dotnet/www
^Cinfo: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...

注意:这里是指定了网站的端口,默认情况下是5000端口且外网无法访问;
添加端口的防火墙,或者测试的时候直接关闭防火墙:

systemctl stop firewalld.service #停止防火墙
systemctl disable firewalld.service #禁用防火墙
systemctl status firewalld.service #查看状态

在外网win10下,用ip+8080端口就可以访问网站了;
目前,是在控制台下运行的,关闭控制台后网站就挂了,因此需要加入Linux service自启动。
先进入路径:/etc/systemd/system/,
增加service文件mydonet5.service,内容如下:

[Unit]
Description="mydonet5 Service"

[Service]
Type=simple
GuessMainPID=true
WorkingDirectory=/var/www/dotnet/www/
StandardOutput=journal
StandardError=journal
ExecStart=/usr/bin/dotnet CoreWebMVC.dll --urls="http://*:8080" --ip="127.0.0.1" --port="8080"
Restart=always

[Install]
WantedBy=multi-user.target

然后加入自启动服务:

systemctl status mydonet5.service  //查看服务
systemctl start mydonet5.service //启动服务
systemctl restart mydonet5.service //重启服务
systemctl stop mydonet5.service //停止服务

O98K了~!
虽然.net 5网站已经可以在CentOS下开机自启动运行了,但还是不够炫酷~~~~
下面继续研究以下如何部署到docker并且让docker也自启动。。。

部署到docker

搜了一下资料,貌似只能安装docker ce,而且默认库里面么有~~~~

  1. 下载ce的库
    $curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  2. 安装依赖
    yum install https://download.docker.com/linux/Fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
  3. 安装ce
    yum install docker-ce
    这里会报错,根据提示,要加一个忽略错误的参数,忘了保存了,可以自行查看提示;
    上面3步参考的:https://www.linuxprobe.com/centos81-install-docker.html
  4. 启动docker
    systemctl start docker
    弄成开启启动
    systemctl enable docker
  5. 回到vs2019,在网站项目下点击右键,然后添加,然后选docker支持,会自动生成一个dockerfile文件;
  6. 把这个dockerfile修改一下:
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80

FROM base AS final
# 从当前文件目录,复制文件到docker目录
COPY . .
ENTRYPOINT ["dotnet", "CoreWebMVC.dll"]
  1. 上传到Linux下的网站文件夹;
  2. 远程连接Linux,然后进入到刚才上传的网站文件夹,先创建docker镜像(xxx代表镜像名字,随便起,点不能删除):
docker build -t xxx .
  1. 运行,生成docker容器(49154是暴漏在外网的端口,80是docker里面配的端口):
docker run -p 0.0.0.0:49154:80 --name=container_name --restart=always xxx

这样,在linux启动后就会自动运行我们创建的docker容器了。
切换到win10客户端,输入ip+49154端口测试,O98K了~!
参考文献:https://www.cnblogs.com/shousiji/p/14918631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值