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 WebApi 应用打包至 Docker 镜像
将 ASP.Net Core WebApi 应用打包至 Docker 镜像 运行环境为 Windows 10 专业版 21H1, Docker Desktop 3.6.0(67351),Docker ...
- ASP.NET Core WebApi 项目部署到 IIS 服务器的总结
Point: - ASP.NET Core WebApi 项目 - 发布到 IIS 服务器 1. 选择 File System 2. 输入要发布到的路径 # 其它默认,直接发布 3. 打开 IIS,添 ...
- .NET Core Web 应用部署到 Docker 中运行
环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...
- dotnet core webapi 发布部署到docker的步骤
1. 创建web api项目,编译并测试成功 2. 在项目的根目录添加Dockerfile文件,注意:Dockerfile文件名区分大小写 文件内容如下 # 基于microsoft/dotnet:la ...
- [Linux之旅一] .NET Core 2.2部署到Docker中
第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Doc ...
- 记一次使用Asp.Net Core WebApi 5.0+Dapper+Mysql+Redis+Docker的开发过程
#前言 我可能有三年没怎么碰C#了,目前的工作是在全职搞前端,最近有时间抽空看了一下Asp.net Core,Core版本号都到了5.0了,也越来越好用了,下面将记录一下这几天以来使用Asp.Net ...
- asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...
- asp.net core webapi/website+Azure DevOps+GitHub+Docker
asp.net core webapi/website+Azure DevOps+GitHub+Docker 新春开篇作,主要写一下关于asp.net core web/api 2.2 项目借助dev ...
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享 ...
随机推荐
- Azure中国CDN全球覆盖功能初探
在不久前的4月初,Azure中国官网上简短地发布了其CDN中“标准版 Zone 2”功能.一开始笔者尚有些摸不着头脑,这个“Zone 2”具体指的是什么呢?好在后来官网更新了信息描述如下: 这下就比较 ...
- js random获取随机数,获取任意范围内随机整数
壹 ❀ 引 想着好久没做笔试题了,去GitHub找了面试相关的项目,结果被第一道题难住了.....说难其实也不难,而是我忘记了取范围随机整数怎么写了,不可否认如果当时是我在笔试,肯定也凉了,那么就由 ...
- 12306抢票系统——ER图及数据表
12306自动抢票系统——ER图及数据表 1. 抢票系统ER图 数据表 2.抢票系统数据结构表 (1)列车表 Trains table 字段名 数据类型 说明 是否为主键 Train_id strin ...
- 卸载 python 3.7.3 再安装 遇到 error 0x80070001
这件事告诉我,千万不要手贱,闲的发慌蛋疼 手贱把用得好好的python 3.7.3 卸载后怎么装也装不回去, 告诉我遇到了 error 0x80070001 最终还是靠强大的谷歌找到了办法,幸好没有重 ...
- Java底层技术系列文章-hashcode深入理解
带着问题去理解: 1. Object类HashCode方法是如何实现的,和String类有什么区别? 2.HashCode和Equals之间的关系? 一.hashCode作用 hashCode方法返回 ...
- wpf怎么绑定多个值,多个控件
最近有不少wpf新手问wpf的命令怎么绑定多个控件,很多人为此绞尽脑汁,网上的答案找了也没找到靠谱的,其实用MultiBinding就可以了.从.net 3.0版本开始,就支持MultiBinding ...
- JVM的内存区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 包含程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运行时常量池).直接内存等,不同的版本会有所差异 各区 ...
- 洛谷P2384 最短路 题解
题目简叙: 请你求出从1到n的最短路径,其中最短路径☞这条路经过的边的权值的乘积. 题目分析: 很显然,这也是一道经典的单元最短路问题,首先我们可以考虑使用Floyd,显然,这是一个比较无脑简单的最短 ...
- [leetcode]914. X of a Kind in a Deck of Cards (easy)
原题 题目原意可转换为 两组有大于等于2的公因数 /** * @param {number[]} deck * @return {boolean} */ var hasGroupsSizeX = fu ...
- ThinkPHP5.0 模板
ThinkPHP5.0 模板 模板渲染 默认的视图目录是默认的模块下的view目录 渲染规则:调用 \think\View 类fetch方法 // [模板文件目录]/当前控制器名(小写+下划线)/当前 ...