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/

原文链接:https://www.cnblogs.com/JunXiao/p/11344989.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

Asp.Net Core WebAPI+PostgreSQL部署在Docker中相关推荐

  1. ASP.NET Core 集成AAD认证在Docker中运行时要注意的一个问题

    最近我在准备一个分享,就是基于.NET 6.0的云原生开发Microsoft 365应用,这个看起来很高大上的东东,其实我理解主要就是能把应用容器化,便于与环境无关地进行分发和部署.如果理解有误,请大 ...

  2. IIS部署asp.net core webapi

    一.需要安装Windows Server Hosting,作用是让IIS有方向代理功能(Asp.Net Core Module负责反向代理工作),将请求转发到Kestrel,Windows serve ...

  3. ASP.NET Core微服务(七)——【docker部署linux上线】(RDS+API接口测试部分)

    ASP.NET Core微服务(七)--[docker部署linux上线]: 本文测试采用阿里云的RDS(sqlserver服务器)+ECS(linux服務器)进行测试,由于是测试,[按量付费]买个最 ...

  4. 实战中的asp.net core结合Consul集群Docker实现服务治理

    一.前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动con ...

  5. ASP.NET Core WebApi构建API接口服务实战演练

    一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...

  6. 【Vue】Vue与ASP.NET Core WebAPI的集成

    SPA单页面应用已经遍地开花,熟知的三大框架,Angular.Vue和React,其中Angular与React均可集成至ASP.NET Core,且提供了相关了中间件.但是Vue没有: " ...

  7. asp.net core WebAPI实现CRUD

    本节用于构建一个简单的WebAPI来管理to-do列表.不会创建用户界面. API Description Request body Response body GET /api/todo Get a ...

  8. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(一)-- 起步

    一.安装Visual Studio Code 安装文件下载地址:VS Code,当前最新版本是1.3. 推荐安装最新版,因为附带Debug插件,支持在vs code上进行断点调试. 二.安装.Net ...

  9. Asp.Net Core 发布和部署(Linux + Jexus )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 asp.net core 中对我们的已经完成的程序进行发布和部署. 有关如何使用 Nginx 进行部署, ...

最新文章

  1. 统计简单学_常用统计图表
  2. keras 模型简介
  3. Openxml: 导出excel 设置 cell的格式
  4. cdf2rdf--复对角矩阵转化为实对角矩阵
  5. 趣文:如果网络浏览器是妹纸
  6. IDE (Integrated Development Environment) 集成开发环境
  7. 通俗易懂讲解RBF网络
  8. Tomcat Firewall JMX RMI
  9. “夺笋呐”!会员隐私随便看 诈骗就当没看见,中国最大婚恋网站紧急回应
  10. 《二》Android 数据库 SQlite SQLiteOpenHelper
  11. 【小程序】使用socket实现文件的收发
  12. 磁盘已满,如何从 Mac 中删除大文件?
  13. hdu1728 逃离迷宫
  14. 图片后缀名批量快速修改
  15. Python基础 by.肖洪福
  16. 计算机文化基础西安航空学院知到答案,HBsAg阳性,抗-HBe阳性,抗-HBc阳性,表明...
  17. 初一计算机基础知识试题及答案,【2017年整理】计算机基础知识试题及答案.doc...
  18. 使用nacos配置dubbo3
  19. 前大灯是近光灯还是远光灯_高速公路上应该开远光灯还是近光灯?
  20. 杭电ACM-2036 改革春风吹满地

热门文章

  1. 理解 Delphi 的类(七) - 认识类的多态
  2. java中拷贝文件的代码_拷贝文件夹中的所有文件到另外一个文件夹
  3. 内存泄露 体现在哪个数字上_Microsoft刚刚泄漏了一个新的开始菜单。 你喜欢哪个?...
  4. Cygwin使用指南
  5. 将VNC 安装在Centos 7步骤
  6. 大数据量分页查询方法(转)
  7. Mybatis——返回类型为 集合嵌套集合 应该如何处理
  8. Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
  9. 页面获取Spring Security登录用户
  10. 测试你的Python 水平----6