Asp.Net Core WebAPI+PostgreSQL部署在Docker中
postgresql是一个功能强大的开源数据库系统。它支持了大多数的sql:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。postgresql对很多高级开发语言有原生的编程接口,如c/c++、java、.net、perl、python、ruby、tcl 和odbc以及其他语言等,也包含各种文档。我用postgresql结合.net core webapi构建并部署在docker中做了一个demo构建:
一、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中
-
Asp.net Core Jenkins Docker实现一键化部署的实现
-
使用VS2022在ASP.NET Core中构建轻量级服务
-
Hangfire在ASP.NET CORE中的简单实现方法
-
Asp.net Core应用程序在Linux上部署的图文详解
-
在Windows系统中构建还原ASP.NET Core 源码
-
docker部署Asp.net core应用的完整步骤
-
docker部署Asp.net core应用的完整步骤
-
详解ASP.NET Core 在 JSON 文件中配置依赖注入
-
在ASP.NET Core 3.0中使用Swagger