发布到IIS
- 到下面这个网址下载ASP.NET Core Runtime 5.0.8;
https://dotnet.microsoft.com/download/dotnet/5.0 - 进入IIS,新建一个应用程序池,.Net CLR版本选择“无托管代码”;
- 新建网站,选择刚才的应用程序池;
- 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,而且默认库里面么有~~~~
- 下载ce的库
$curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo - 安装依赖
yum install https://download.docker.com/linux/Fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm - 安装ce
yum install docker-ce
这里会报错,根据提示,要加一个忽略错误的参数,忘了保存了,可以自行查看提示;
上面3步参考的:https://www.linuxprobe.com/centos81-install-docker.html - 启动docker
systemctl start docker
弄成开启启动
systemctl enable docker - 回到vs2019,在网站项目下点击右键,然后添加,然后选docker支持,会自动生成一个dockerfile文件;
- 把这个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"]
- 上传到Linux下的网站文件夹;
- 远程连接Linux,然后进入到刚才上传的网站文件夹,先创建docker镜像(xxx代表镜像名字,随便起,点不能删除):
docker build -t xxx .
- 运行,生成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