当前位置:Gxlcms > 数据库问题 > Asp.Net Core WebAPI+PostgreSQL部署在Docker中

Asp.Net Core WebAPI+PostgreSQL部署在Docker中

时间:2021-07-01 10:21:17 帮助过:16人阅读

一、VS2017构建Asp.Net Core WebApi项目

技术图片

二、在NuGet包管理器中添加 Npgsql.EntityFrameworkCore.PostgreSQL

技术图片

三、编写DbContext类,以及实体类。也可以直接通过命令行自动生成:
dotnet ef dbcontext scaffold "Server=localhost;port=5432;Database=Todo;Username=postgres;Password=111111" Npgsql.EntityFrameworkCore.PostgreSQL -o Models -p postgreSQL.Demo

技术图片

技术图片

如果需要对实体进行约束,实现IEntityTypeConfiguration接口

技术图片

四、注入PostgreSQL在Asp.Net Core中

技术图片

五、编写业务逻辑,由于数据库中有数据,我直接写一个读取数据的API方法

技术图片

控制台运行后指定api/todo路径后,显示如下结果:

技术图片

六、接下来,在VS2017项目WebApi中添加Docker Compose,Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器,在VS2017中,选中项目右击-》添加-》容器业务流程协调程序支持,当然你也可以选择Docker支持,不过需要自己手动输入命令行构建镜像。

技术图片

接下来,会发现项目中出现了一个Docker Compose的一个项目节点:

技术图片

yml文件对Docker容器进行了项目配置,另外在WebAPI项目中多了一个Dockerfile文件,文件中描述的是构建Docker镜像的构建命令:

技术图片

七、在Docker-Compose项目的yml文件中是Docker的一些配置:

技术图片

生成Docker-Compose项目,自动进行Docker镜像构建,不需要手动输入命令行:

技术图片

最后运行Docker-Compose,启动后,打开Docker可视化工具Kitematic可以看到部署的webapi站点在运行中:

技术图片

点击右边的Hostname/Ports选项,下面是Docker 的端口映射,可以修改

技术图片

点击localhost:64629,访问路径api/todo,会看到和控制台运行一样的效果

技术图片

另外要注意:PostgreSQL不要用localhost地址,改用IP地址,具体的PostgreSQL的IP地址配置看如下链接:
https://www.bbsmax.com/A/n2d9Xw605D/

 

Asp.Net Core WebAPI+PostgreSQL部署在Docker中

标签:实体类   password   方法   type   数据类型   链接   项目配置   docker镜像   控制台   

人气教程排行