前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用

宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用

作者头像
一线编程
发布2023-03-02 13:02:42
2.5K0
发布2023-03-02 13:02:42
举报
文章被收录于专栏:办公魔盒办公魔盒

一,首先,创建一个ASP.NET Core测试项目

1.1 打开VS2019/2022,创建一个.NTE6 Core控制台应用,为什么要这么干呢?因为VB已经不是MS的宠儿了,只能通过控制台,手动配置WebAPI

1.2 创建成功后,立即把项目关闭掉;然后去到项目根目录下( 项目名.vbproj )的.vbproj文件,使用文本编辑器打开,替换成一下内容,保存,重新打开项目即可!

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk.Web">
   <PropertyGroup>
    <!-- 项目的名称 -->
  <RootNamespace>VB_NET_WebAPI_Test</RootNamespace> 
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.3.0" />
  </ItemGroup>

</Project>

1.3 替换(Program.vb)文件内容以,创建ASP.NET WebAPI应用

代码语言:javascript
复制
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.Extensions.DependencyInjection
Imports Microsoft.Extensions.Hosting

Module Program
    Sub Main(args As String())
        ' 创建WebAPI容器
        Dim WebBuilder As WebApplicationBuilder = WebApplication.CreateBuilder(args)
        ' 注入服务
        WebBuilder.Services.AddEndpointsApiExplorer() ' 访问节点
        WebBuilder.Services.AddControllers() ' 控制器
        WebBuilder.Services.AddSwaggerGen()

        ' 创建应用
        Dim WebApp As WebApplication = WebBuilder.Build()
        WebApp.UseSwagger()
        WebApp.UseSwaggerUI(Sub(c)
                                c.SwaggerEndpoint($"/swagger/v1/swagger.json", "test")
                                c.ShowCommonExtensions
                                c.ShowExtensions()
                            End Sub)
        '' 添加端口
        If WebApp.Environment.IsProduction Then
            WebApp.Urls.Add("http://*:8001")
        End If
        WebApp.UseAuthorization()
        WebApp.MapControllers()
        ' 启动服务
        WebApp.Run()
    End Sub
End Module

1.4 创建一个测试控制器(HomeController),项目右键添加类,然后运行一下,成功即可!

代码语言:javascript
复制
Imports Microsoft.AspNetCore.Authorization
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.Extensions.Logging

<ApiController, Route("")>
Public Class HomeController
    Inherits ControllerBase

    Private ReadOnly PLogger As ILogger(Of HomeController)
    Public Sub New(logger As ILogger(Of HomeController))
        PLogger = logger
    End Sub

    ''' <summary>
    ''' 数据主接口
    ''' </summary>
    ''' <returns></returns>
    <HttpGet(), Route(""), AllowAnonymous>
    Public Function ApiHome() As ObjectResult
        Return New ObjectResult("你好啊,一线编程! VB.NET Core API 接口! " & Now)
    End Function

    ''' <summary>
    ''' 文档跳转接口
    ''' </summary>
    ''' <returns></returns>
    <HttpGet(), Route("Doc"), AllowAnonymous, ApiExplorerSettings(IgnoreApi:=True)>
    Public Function ApiDoc() As LocalRedirectResult
        Return New LocalRedirectResult("/swagger", True)
    End Function
End Class

到此位置已经成功创建一个,VB.NET Core API 接口,下面正式开始Docker操作


二,给ASP.NET Core测试项目,添加Docker支持

2.1 项目右键,添加(Docker支持),Docker文件选择(Linux)

2.2 修改Docker的端口号为8001(自己随意,和Program.vb文件的端口对应即可),删掉443端口即可,然后点击保存,关闭项目即可!!!!

三,给ASP.NET Core测试项目,创建Docker镜像

3.1 在创建Docker前,开发电脑必须安装Docker,才能在命令行使用Docker指令,自行下载安装即可!安装完成在,Win+R,执行 docker -v 看到相应的版本安装成功!

代码语言:javascript
复制
下载地址:
https://www.docker.com/get-started/

3.2 确保Docker安装成功的前提下,回到测试项目根目录,在地址栏输入 CMD 运行命令行,然后运行一下,指令创建Dokcer镜像(注意后面的点不可少)

代码语言:javascript
复制
docker build --no-cache -t 镜像名称(小写) -f Dockerfile .

3.3 验证镜像是否创建成功!执行以下指令即可,看到对应名称即成功!

代码语言:javascript
复制
docker images -a

3.4 导出 镜像 以部署到 Linux OS 系统上,执行以下指令即可!

代码语言:javascript
复制
docker save webapitest -o F:\Rambo\桌面\webapitest.tar

四,在宝塔面板上部署ASP.NET Core测试项目

4.1 宝塔面板.安装Docker管理器,软件商店->搜索Docker->安装即可

4.2 测试项目镜像上传到,宝塔面板Docker

4.2.1 打开Docker管理器

4.2.2 跳到 镜像导出->上传文件 等待上传完毕,点击导入即可!!

4.2.3 回到容器列表 ,然后 创建容器 最后放行对应的端口即可!!

代码语言:javascript
复制
测试地址:
http://42.193.251.120:8001/
http://42.193.251.120:8001/doc

好了,今天的内容到此结束了!

当然,上面的方式都是可视化的比较简单,但这也是我们追求的,化繁为简!


案例下载:

代码语言:javascript
复制
链接:https://pan.baidu.com/s/1QMIN_pSYZVz1UzG3y-IwYQ?pwd=vbee 
提取码:vbee 
--来自百度网盘超级会员V6的分享
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档