ASP.NET Core 应用在 Linux 上如何运行 ?

1107 查看

ASP.NET Core 应用如何运行在 Linux (以下以ubuntu 14.04为例)平台上,首先要确保按照 官方指导 安装 .NET Core 运行环境。然后按照以下几种步骤发布并运行应用。

一、复制发布

  1. 使用命令 dotnet publish -c release 发布项目到默认文件夹
  2. 通过 xftp 5 或其他工具将该文件夹所有内容上传到 linux 服务器指定目录
  3. 通过 xshell 5 ssh登录到linux服务器,切换到程序目录,执行 dotnet demo.dll 即可在终端运行程序,如果希望程序后台运行使用以下命令 sudo nohup dotnet demo.dll,也可以使用第三方进程管理工具(supervisor等)来管理 ASP.NET Core 应用的启动。

二、容器发布

  1. docker hub 上创建账号,并创建一个项目库 demo
  2. 在 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
  3. 在开发机windows上安装 docker for windows
  4. 启动 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上
  5. 在 ubutntu 服务器上执行命令 docker run -it -p 3723:3723/tcp yourname/demo:v1.0.0
    即可运行包含该应用的容器,使用命令 docker logs container-id 查看容器中的日志消息。一切顺利的话,demo程序将随着容器运行起来了,

总结

使用容器运行的好处显而易见,每次开发完成新的版本都提交到registry上(如果是企业开发可以自己搭建专属的私有仓库),运维人员值需要在生产环境执行一条 docker run ... 命令即可开始部署。从此不再需要以往的无尽的打包,压缩,发送,接收,解包,配置,启动,错误,重新配置的噩梦模式。

面对任何新的技术,我们都应该以一种积极正面的态度来学习和接纳,因为从历史的角度来看,任何新的技术都是因为解决某个特定问题而出现的,而我们可能正在面对这样的问题,同时它能极大地提高我们的工作效率。