本文只是记录 .net core 3.1 项目的基本部署方法,灵活应对不同情况与需求

工具:VS 2019

     Linux CentOS 7 x64

   Xshell

      Xftp

Docker 安装配置可参考:Docker 安装、配置 

1、新建项目

 创建新项目

 选择 ASP.NET Core Web 应用程序,下一步

 设置项目名称,存储位置,解决方案名称,创建

 选择 .NET Core,ASP.NET Core 3.1,Web 应用程序(模型视图控制器),可以勾选启用 Docker 支持选择 Linux(如果勾选 Enable Razor runtime compilation 则在修改页面,浏览时会自动编译),创建

 开始执行(Ctrl + F5),测试项目,如果启用 Docker 支持,又没有安装 Docker 的话,就选择项目运行或 IIS Express

2、发布

 Web 项目正常运行后,右键项目,选择发布

 发布目标选择文件夹,下一步

 选择文件夹(根据需求),完成

 编辑目标运行时(根据需求),目标框架选择 netcoreapp3.1,部署模式选择框架依赖,目标运行时选择 linux-x64(根据要部署的服务器),保存

 发布

3、将发布目录发布上传到 Linux 

 可以使用 Xshell 连接 Linux ,使用 Xftp 将文件上传

4、 准备 Dockerfile 文件,如果创建项目是没有启动 Docker 支持,可通过右键项目 -> 添加 -> Docker 支持

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1      #基于此镜像来构建镜像 
WORKDIR /app  #设置工作目录,容器默认启动文件夹
EXPOSE 5000   #设置 Docker 容器对外暴露 5000 端口

COPY . .     #复制发布目录下的文件到工作目录,注意两个点之间有空格
ENTRYPOINT ["dotnet", "WebDockerTest.dll"]  #运行应用程序

将 Dockerfile 文件修改好也上传到发布目录下

注:VS 自动生成的 Dockerfile 适用于将整个项目上传至 Linux 并在Linux上编译发布并制作成镜像。也是一种部署方式,可参考微软的官方文档

5、生成镜像

Linux 进入发布目录

docker build -t <镜像Tag名称> Dockerfile .     #这里的 . 代表当前目录,其中 Dockerfile 文件名为 Dockerfile 时可省略
eg:
$ docker build -t webdockertest .

6、创建运行仓库

docker run -d -p<对外端口>:<Docker端口> <镜像Tag> #参数 -d 表示在后台运行 -p参数代表将外部端口映射到内部端口 
eg:
$ docker run -d -p5000:5000 webdockertest

正常情况下可使用 docker ps 看到 STATUS 为 Up... ,可以通过 IP:5000 访问到

 

正在完善中

 

 posted on 2021-02-01 02:05  风影·WindShadow  阅读(108)  评论(0编辑  收藏  举报