asp.net core结合docker实现自动化获取源码、部署、更新
之前入坑dotnet core,由于一开始就遇到在windows上编译发布的web无法直接放到centos上执行。之后便直接研究docker,实现在容器中编译发布。然后就越玩越大,后来利用git的hooks实现自动实现git源码一收到push就自动化获取新代码并编译发布。最后为了方便复用,直接做成统一配置,因此不需要再次编写复杂的脚本配置。只需要打开配置文件,配置几项值,运行一个脚本就ok。
目前有两个版本,原始版本包括git项目的自动克隆。v1版本则把git的克隆抽了出来需要人工克隆一次。具体看readme文档有说明。
技术栈
- asp.net core
- shell脚本
- python
- docker
- docker-compose
- nginx
github地址:https://github.com/CrystalWindSnake/NetCore.Test.AutoDeployment.git
坑s的记录(这里会慢慢补充更新)
源码更新后,重启web容器后,再次访问网页会出现502错误。
这个原因是因为docker的网络机制。每次容器启动时,docker都会重新分配一个ip地址给容器,如果有配置容器之间网络通信(通过links),会在容器中的hooks文件中记录上连接容器的ip信息。但由于web容器重启而不需要重启nginx,导致nginx容器还记录着之前web容器的ip信息,导致更新后再次访问nginx就跳转不到web容器上。
解决方法就是配置独立的网络(通过docker-compose)。具体看下面截取的配置(docker-compose.yml)
version: '3'
services:
web:
networks:
- auto-ci-nw nginx:
networks:
- auto-ci-nw networks:
auto-ci-nw:
asp.net core结合docker实现自动化获取源码、部署、更新的更多相关文章
- ASP.NET Core使用Docker进行容器化托管和部署
一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管,本课程并不是完完全全的零基础Docker入门教学,课程知识点难免有没覆盖全面 ...
- Asp.Net Core AuthorizeAttribute 和AuthorizeFilter 跟进及源码解读
一.前言 IdentityServer4已经分享了一些应用实战的文章,从架构到授权中心的落地应用,也伴随着对IdentityServer4掌握了一些使用规则,但是很多原理性东西还是一知半解,故我这里持 ...
- ASP.Net Core MVC6 RC2 启动过程分析[偏源码分析]
入口程序 如果做过Web之外开发的人,应该记得这个是标准的Console或者Winform的入口.为什么会这样呢? .NET Web Development and Tools Blog ASP.NE ...
- 基于Microsoft Azure、ASP.NET Core和Docker的博客系统
欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客 ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- .NET Core微服务之ASP.NET Core on Docker
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Docker极简介绍 1.1 总体介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.D ...
- [翻译] ASP.NET Core 利用 Docker、ElasticSearch、Kibana 来记录日志
原文: Logging with ElasticSearch, Kibana, ASP.NET Core and Docker 一步一步指导您使用 ElasticSearch, Kibana, ASP ...
- asp.net core的docker实践
如果centos中没有安装和docker和.net core镜像,先安装docker和asp.net core 镜像 安装dockeryum -y install docker-io 启动 Docke ...
- ASP.NET Core开发Docker部署
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
随机推荐
- django 分页组件
一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib i ...
- 一道考查request导致的安全性问题的ctf题
这道题是在看红日安全团队的代码审计系列文章时碰到的,感觉挺有意思的,所以做了下.题目代码如下 //index.php <?php require 'db.inc.php'; function d ...
- [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
#0x01 准备 1)要保证QT和MySQL都是一样的位数,我的就是都安装的64位. 2)安装Qt5.12,这里主要提一点,在安装时候,有个选择插件那块,尽量都选上,里面有个database选项,记得 ...
- c# 枚举安卓系统中所有目录及文件名
using Android.App; using Android.Widget; using Android.OS; using System.Runtime.InteropServices; nam ...
- day01代码
1. 使用while循环打印1,2,3,4,5,7,8,9 # 使用while循环打印1,2,3,4,5,7,8,9 count = 0 while count < 10: count += 1 ...
- Ansible 批量修改密码
客户要求每3个月修改一次主机密码.密码规则为客服提供的一串字符 xxxx + 主机后3位. 将需要登录主机添加到 Ansible. 将需要登录主机的公钥添加到 known_hosts ssh-keys ...
- 18.14 构建Linux根文件系统
18.14.1 Busybox1.7.0之init程序分析 1.读取配置文件 2.解析配置文件 3.执行用户程序(根据配置文件中指定的内容) 配置文件: 1.指定应用程序 2.何时执行 busybox ...
- ecmobile-页面空白,也没异常提示,一般就是这个问题
分类页空白了://2018年09月07日14:55:21 四:页面空白 将ON_WILL_APPEAR中有关页面布局方法写在ON_DID_APPEAR方法中.例如:
- xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'
xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files' 1.使用xtrabackup备份MySQL时出现如下报错 ...
- Centos7下安装pptp客户端
1.使用yum安装ppp和pptp yum install ppp pptp 2.配置pptp pptpsetup --create vpn连接名称(自定义) --server VPN服务器IP -- ...