ASP.NET Core 应用如何运行在 Linux (以下以ubuntu 14.04为例)平台上,首先要确保按照 官方指导 安装 .NET Core 运行环境。然后按照以下几种步骤发布并运行应用。
一、复制发布
- 使用命令
dotnet publish -c release
发布项目到默认文件夹 - 通过 xftp 5 或其他工具将该文件夹所有内容上传到 linux 服务器指定目录
- 通过 xshell 5 ssh登录到linux服务器,切换到程序目录,执行
dotnet demo.dll
即可在终端运行程序,如果希望程序后台运行使用以下命令sudo nohup dotnet demo.dll
,也可以使用第三方进程管理工具(supervisor等)来管理 ASP.NET Core 应用的启动。
二、容器发布
- 在 docker hub 上创建账号,并创建一个项目库 demo
- 在 ASP.NET Core 项目根目录下创建dockerfile文件如下:
FROM microsoft/dotnet
MAINTAINER "yourname" yourname@gmail.com
WORKDIR /root/
USER root
COPY ./bin/release/netcoreapp1.0/publish/ /root/
EXPOSE 3723/tcp
CMD dotnet demo.dll
- 在开发机windows上安装 docker for windows
- 启动 powershell 并切换到项目目录,以此执行以下命令:
docker login #登录到docker registry以便稍后发布image到官方hub上。
docker build -t yourname/demo:v1.0.0 . #创建image
docker push yourname/demo:v1.0.0 #将本地构建的image推送到官方registry上
- 在 ubutntu 服务器上执行命令
docker run -it -p 3723:3723/tcp yourname/demo:v1.0.0
即可运行包含该应用的容器,使用命令docker logs container-id
查看容器中的日志消息。一切顺利的话,demo程序将随着容器运行起来了,
总结
使用容器运行的好处显而易见,每次开发完成新的版本都提交到registry上(如果是企业开发可以自己搭建专属的私有仓库),运维人员值需要在生产环境执行一条 docker run ...
命令即可开始部署。从此不再需要以往的无尽的打包,压缩,发送,接收,解包,配置,启动,错误,重新配置的噩梦模式。
面对任何新的技术,我们都应该以一种积极正面的态度来学习和接纳,因为从历史的角度来看,任何新的技术都是因为解决某个特定问题而出现的,而我们可能正在面对这样的问题,同时它能极大地提高我们的工作效率。