Docker 发布 Abp net core web 服务
Docker 发布 Abp net core web 服务
准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是Single Page Web Application)
安装docker :参考:http://www.runoob.com/docker/windows-docker-install.html
- 安装成功后注册docker 账号

- 创建数据库容器参考:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash

执行命令: docker pull mcr.microsoft.com/mssql/server:2017-latest 拉取映像
- 执行命令创建映像容器:docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<填写一个账号密码'> -p <本机端口>:<服务器端口> --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest
- 注意:<> 括号内是你要替换的内容, - p 后面两个端口的作用是将容器内的端口映射到本地端口,例如:映像中的mssql 的端口是1433,映射到本地的8099 就是:-p 6900:1433
- 测试一下,用 vs 连接docker 上的mssql

- 对容器内的数据库经行数据库迁移
- 更改Abp 项目 AbpCompanyName.AbpProjectName.Migrator 下的appsetting.json 中的连接字符串为,你创建容器的连接 "Data Source=<本机ip>,<docker 映射的端口>;Initial Catalog=<你创建的数据库>;User ID=sa;Password=<你的数据库密码>"
- 替换数据库连接后运行程序经行迁移

- 发布web
- 在host 项目下创建 Dockerfile 注意将 AbpCompanyName.AbpProjectName.Web.Host.dll 替换成你启动的程序集名称.dll
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE /tcp ENTRYPOINT ["dotnet", "AbpCompanyName.AbpProjectName.Web.Host.dll"]
- 设置 Dockerfile 生成方式

- 发布代码

- 构建映像 ,在发布目录下运行命令: docker build -t 映像名称 . 这里注意结尾不要漏了空格跟“.“

- 创建并运行容器

执行命令: docker run -it -p <本地端口>:<容器端口> <映像名称>
执行后可以看出,程序默认绑定容器的80端口,因此我们需要在本地上访问容器内的web,我们必须设置映像端口为80(根据实际情况绑定端口)
本例子中上面创建了myabp/demo容器,且程序运行的端口为80,因此我想在本机上8078端口访问服务命令就是: docker run -it -p 8078:80 myabp/demo
- 浏览网址:http://localhost:8078/swagger/index.html 结果如下 ,powerShell 可以直接关掉,服务会继续挂在docker 上面

- 用vscode 打开vue 项目修改 vue/src/lib/url.ts 修改url 为我们docker 上发布的服务地址

命令终端在 vue 目录下运行 npm run serve

点开浏览地址可以看到前端已经请求docker 上的服务地址,默认账号 admin 密码123qwe

如果有需要的同学可以允许npm rum build 打包前端代码再发布到docker 或者IIS上面都可以,
- 在host 项目下创建 Dockerfile 注意将 AbpCompanyName.AbpProjectName.Web.Host.dll 替换成你启动的程序集名称.dll
如果前端访问失败,有可能是服务上没有添加跨域配置哦~

Docker 发布 Abp net core web 服务的更多相关文章
- 基于Docker Compose的.NET Core微服务持续发布
是不是现在每个团队都需要上K8s才够潮流,不用K8s是不是就落伍了.今天,我就通过这篇文章来回答一下. 一.先给出我的看法和建议 我想说的是,对于很多的微小团队来说,可能都不是一定要上K8s,毕竟上K ...
- 使用docker部署Asp.net core web应用程序
拉取aspnetcore最新docker镜像 aspnetcore的docker镜像在docker官网是有的,是由微软提供的.它的依赖镜像是microsoft/dotnet.通过访问网址:https: ...
- 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...
- Docker 为 ASP.NET Core Web 应用程序生成 Docker 映像,创建并运行多个容器
1.为 ASP.NET Core 应用程序生成 Docker 映像 下载这个事例项目:https://github.com/dotnet/dotnet-docker/tree/master/sampl ...
- 使用Docker发布Asp.Net Core程序到Linux
CentOS安装Docker 按照docker官方文档来,如果有之前安装过旧版,先卸载旧版,没有的话,可跳过. sudo yum remove docker \ docker-client \ doc ...
- .NET Core Web 应用部署到 Docker 中运行
环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
- CXF发布在Web服务
1.下载apache-cxf-3.1.4,将jar引入新工程中. 2.People.java package com.soap.server; import java.util.Date; impor ...
- ASP.NET Core Web应用在发布时选择是否对视图进行编译
原文:ASP.NET Core Web应用在发布时选择是否对视图进行编译 在我们发布ASP.NET Core Web应用程序时,选择以文件形式发布,发布方法选择文件系统 默认情况下,会把Views的视 ...
随机推荐
- 视频客观质量评价工具:MSU Video Quality Measurement Tool【ssim,psnr】
MSU Video Quality Measurement Tool(msu vqmt)是莫斯科国立大学(Moscow State University)的Graphics and Media Lab ...
- IEEE发布2017年编程语言排行榜:Python高居首位
https://news.cnblogs.com/n/574248 编者按:本文由微信公众号“机器之心”(ID:almosthuman2014)编译,机器之心专注生产 AI 领域专业性内容.本文作者: ...
- PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
小数例子: PHP保留两位小数并且四舍五入 1 $n=0.1265489; 2 echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprin ...
- mongodb的安装使用,window和centos环境
官网:https://www.mongodb.org/downloads 版本:最终稳定版 (mongodb-win32-x86_64-2008plus-ssl-3.2.6-signed.msi 绿色 ...
- lintcode 在O(1)时间复杂度删除链表节点
题目要求 给定一个单链表中的一个等待被删除的节点(非表头或表尾).请在在O(1)时间复杂度删除该链表节点. 样例 Linked list is 1->2->3->4, and giv ...
- Intellij-Idea Maven SSH项目的搭建
添加阿里云镜像 在.m2/settings.xml中, <mirror> <id>nexus-aliyun</id> <name>Nexus aliyu ...
- 计算机的Cache和Memory访问时Write-back,Write-through及write allocate的区别
计算机的存储系统采用Register,Cache,Memory和I/O的方式来构成存储系统,无疑是一个性能和经济性的妥协的产物.Cache和Memory机制是计算机硬件的基础内容,这里就不再啰嗦.下面 ...
- This 在构造函数中的固定用法
class Person{ String name; int age; char gender; public Person (String name){ this.name = name; } pu ...
- linux下错误的捕获:errno(errno.h)和strerror(string.h)的使用
参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用lin ...
- 注解@EnableDiscoveryClient,@EnableEurekaClient的区别
SpringCLoud中的"Discovery Service"有多种实现,比如:eureka, consul, zookeeper. 1,@EnableDiscoveryClie ...