把ABP框架部署到Docker中
本文旨在将Abp项目部署到Docker容器中,借助Gitee存储,Jenkins持续构建,利用Docker Compose生成镜像、启动镜像,在官网给定的Abp项目中,虽然用到了Dockerfile、Docker Compose,但是没有资料指明该如何使用这两个文件,借此我通过改造这两个文件来完成Abp部署任务。
一、前期准备工作
1、把从Abp官网下载下来的项目(我这取名为Surround方便讲解)修改成以下项目路径结构:

其中的docker文件夹中加入Docker Compose项目,点击具体项目(如ABP中的Web.Mvc)右键添加菜单中的容器业务流程协助程序支持,将出现一个docker compose项目,对于整个docker compose项目的路径按照约定设计。

2、处理docker compose中的脚本配置,在docker-compose.yaml中指定两个服务相关信息,镜像名称、dockerfile的路径地址,此处在build中指定context为本目录的上级目录,按照上图中的位置就是在/xxx项目这一级,然后指定dockerfile的路径为src/Surround.Web.Host/Dockerfile指明具体的Dockerfle路径,同样对于surroundmvc同样如此处理。
version: '3.4' services:
surroundhost:
image: ${DOCKER_REGISTRY}surroundhost
build:
context: ../
dockerfile: src/Surround.Web.Host/Dockerfile
surroundmvc:
image: ${DOCKER_REGISTRY}surroundmvc
build:
context: ../
dockerfile: src/Surround.Web.Mvc/Dockerfile
对于docker-compose.override.yaml文件,这是对前一个文件的补充,docker compose会将两个文件进行合并,在此文件中指定环境变量和对外端口此处docker compose设置的端口优先级高于dockerfile设置的端口,此处设置后dockerfile的端口则失效,此处设置内部端口为80端口,外部端口随机获取一个,如果想固定端口,则可以写 - "32100:80" 那么外部端口便固定为32100。
version: '3.4' services:
surroundhost:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
surroundmvc:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
3、选中Surround.Web.Mvc点击右键选中添加,加入新的dockerfile文件,不再使用已有的dockerfile文件,同时建议修改dockerfile中的指定端口为80端口,这样就促成了约定所有的新项目加入进来容器内部都使用80端口,如有需要另改即可,同样对Surround.Web.Host也执行这样的操作。

4、需要注释Surround.Web.Host中的该部分配置:

该部分配置用于Swagger文档的根目录位置,但是如果不注释掉Web.Host中的ServerRootAddress将会引起,由于外部端口与此处指定的端口不一致导致。

5、在Jenkins中新建项目并编写脚本
如需查看Jenkins的安装过程可以查看https://www.cnblogs.com/CKExp/p/9536864.html,这里不再陈述,
在另一篇https://www.cnblogs.com/CKExp/p/9940479.html,讲解了Surround在Jenkins中新建项目的过程,可以直接使用。
本次执行完毕,之后有新代码提交,将会自动构建,如果需要指定对外端口,可以在docker-compose.override.yaml文档中指定外部端口,如果不指定,则每次生成后都是使用的随机端口,
二、部署完毕查看效果
构建完毕可以通过脚本查看docker ps -a,查看容器已经生成并已经处于运行中了。

通过服务器地址:外部端口的形式可以直接访问查看。


至此,abp部署在docker中算是完成了,主要是修改了原有abp项目中的docker compose文件和dockerfile文件。
本文地址: https://www.cnblogs.com/CKExp/p/9765907.html
欢迎关注微信订阅号,有新的文章将同步到订阅号中

2018-11-11,望技术有成后能回来看见自己的脚步
把ABP框架部署到Docker中的更多相关文章
- .net core Ocelot实现API网关并部署在docker中
基于Ocelot(http://ocelot.readthedocs.io)搭建的API网关demo 软件以及系统版本: Asp.Net Core 2.2 Ocelot 13.5.0 CentOS ...
- Asp.Net Core WebAPI+PostgreSQL部署在Docker中
PostgreSQL是一个功能强大的开源数据库系统.它支持了大多数的SQL:2008标准的数据类型,包括整型.数值值.布尔型.字节型.字符型.日期型.时间间隔型和时间型,它也支持存储二进制的大对像, ...
- nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务
一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...
- .NET Core Web 应用部署到 Docker 中运行
环境介绍 : 虚拟机:VirtualBox 5.1.6 系 统:Ubuntu 16.04.1 LTS 系统准备完成后可以使用 sudo apt-get udpate 和 sudo apt-get up ...
- abp框架angular 项目docker 手动部署到Linux环境中
1.https://aspnetboilerplate.com/Templates 2.后端项目发布,在publish中abp默认已经存在DockerFile文件 3.修改后端文件中的DockerFi ...
- [Linux之旅一] .NET Core 2.2部署到Docker中
第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Doc ...
- vue项目部署到docker中
通过nginx镜像部署 vue项目npm run build打包成dist目录,有的打包会加上版本号 启动 docker 将dist目录通过xftp拷贝到linux服务器上,同目录下新建Dockerf ...
- Windows下docker的安装,将ASP.NET Core程序部署在docker中
参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...
- Docker中部署Kubernetes
Kubernetes为Google开源的容器管理框架,提供了Docker容器的夸主机.集群管理.容器部署.高可用.弹性伸缩等一系列功能:Kubernetes的设计目标包括使容器集群任意时刻都处于用户期 ...
随机推荐
- 电脑不识别U盘
最近遇到这样一个问题,现把具体问题和解决方案给大家分享一下: 系统:win10 症状:插入U盘,系统提示插入U盘的声音提示,磁盘不显示,360 无图标 原因:USB驱动出现问题 对症下药: 插入U盘右 ...
- CopyOnWriteArrayList简介
CopyOnWriteArrayList,写数组的拷贝,支持高效率并发且是线程安全的,读操作无锁的ArrayList.所有可变操作都是通过对底层数组进行一次新的复制来实现. CopyOnWriteAr ...
- 「关于一种处理关于$p$成多项式的数论函数筛法」
张博航原知乎网址 张博航原博客网址 引入: 给一个完全积性函数$f$,求其前缀和 $$S(n)=\sum_{i=1}^nf(i)$$ 初步思考: 考虑由于所求函数为完全积性函数,我们很容易用一个线性筛 ...
- 【NOIP2011】 聪明的质监员
小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1. 给定 m个区间[Li,Ri]: 2. ...
- 防XXS和SQL注入
对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlsp ...
- ROC曲线的概念和意义
ROC曲线 受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve).得此名的原因 ...
- Java 11 新功能来了!
关键时刻,第一时间送达! 目前 Oracle 已经发布了 Java Development Kit 10,下个版本 JDK 11 也即将发布.本文介绍 Java 11 的新功能. 根据Oracle新出 ...
- Vue 进阶之路(九)
之前的文章我们介绍了 vue 中父组件之间的传值,本章我们再来看一下父子组件间传值的参数校验和非 Props 特性. <!DOCTYPE html> <html lang=" ...
- SQL Server 容易忽略的错误
一.概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集 ...
- JavaWeb 乱码问题终极解决方案!
经常有读者在公众号上问 JavaWeb 乱码的问题,昨天又有一个小伙伴问及此事,其实这个问题很简单,但是想要说清楚却并不容易,因为每个人乱码的原因都不一样,给每位小伙伴都把乱码的原因讲一遍也挺费时间的 ...