asp.net core结合docker实现自动化获取源码、部署、更新

  之前入坑dotnet core,由于一开始就遇到在windows上编译发布的web无法直接放到centos上执行。之后便直接研究docker,实现在容器中编译发布。然后就越玩越大,后来利用git的hooks实现自动实现git源码一收到push就自动化获取新代码并编译发布。最后为了方便复用,直接做成统一配置,因此不需要再次编写复杂的脚本配置。只需要打开配置文件,配置几项值,运行一个脚本就ok。

  目前有两个版本,原始版本包括git项目的自动克隆。v1版本则把git的克隆抽了出来需要人工克隆一次。具体看readme文档有说明。

技术栈

  1. asp.net core
  2. shell脚本
  3. python
  4. docker
  5. docker-compose
  6. 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:

  

  

原文地址:https://www.cnblogs.com/crystalwind-blog/p/9210994.html

时间: 2024-11-05 18:45:16

asp.net core结合docker实现自动化获取源码、部署、更新的相关文章

基于Microsoft Azure、ASP.NET Core和Docker的博客系统

欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网")个人空间发布过一些与编程和开发相关的文章.从入行到现在,我至始至终乐于与网友分享自己的所学所得,希望会有更多的同我一样的业内朋友能够在事业上取得成功,也算是为我们的软件事业贡献自己的一份力

ASP.NET Core开发Docker部署

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景. Docker源于PaaS,PaaS的应用场景即是Docker的应用场景. Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软

ASP.NET Core开发-Docker部署运行

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景. Docker源于PaaS,PaaS的应用场景即是Docker的应用场景. Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软

.NET Core微服务之ASP.NET Core on Docker

Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Docker极简介绍 1.1 总体介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 简而言之> 容器是一个打包了应用服务的环境,它是一

[翻译] ASP.NET Core 利用 Docker、ElasticSearch、Kibana 来记录日志

原文:[翻译] ASP.NET Core 利用 Docker.ElasticSearch.Kibana 来记录日志 原文: Logging with ElasticSearch, Kibana, ASP.NET Core and Docker 一步一步指导您使用 ElasticSearch, Kibana, ASP.NET Core 2.1 和 Docker 来记录日志 在本教程中,我将向您展示如何启动和运行 ElasticSearch,Kibana 和 ASP.NET Core 2.1 在开始

ASP.NET Core 的 Docker 映像创建

本教程演示如何在 Docker 容器中运行 ASP.NET Core 应用 具体步骤参考文末官方文档:ASP.NET Core 的 Docker 映像,本文只记录我发布过程中遇到的一些问题. 系统要求 1.操作系统:我的是Windows10(家庭版),这里需要升级到windows10专业版,或者企业版.具体怎么升级你们懂的(万能淘宝买吧).升级后重启电脑. 2.下载安装 Docker For Desktop,下载地址:https://www.runoob.com/docker/windows-d

ASP.Net Core on Linux (CentOS7) 共享第三方依赖库部署

原文:ASP.Net Core on Linux (CentOS7) 共享第三方依赖库部署 背景: 这周,心情来潮,想把 Aries 开发框架 和 Taurus 开发框架 给部署到Linux上,于是开始折腾了. 经过重重非人的坑,终于完成了任务: Aries on CentOS7:mvc.aries.cyqdata.com Taurus on CentOS7:mvc.taurus.cyqdata.com 不过在发布的过程中,发现有大堆共同的dll(100多个,20多M): 看见一大堆这些dll,

【随笔】从gitHub上获取源码

有时候,需要从gitHub上获取源码,下面介绍几个方法: 1.获取链接: 打开gitHub代码库的页面,能在右边看到这个: 点击红圈里的标记,该链接就会复制下来. 然后,如果安装了小乌龟(TortoiseGit),就可以获取该源码了. 首先点击右键,选择小乌龟的选项: 然后在出现的窗口中粘上刚才复制的链接,以及选择主目录: 点击OK,现在,你就可以用小乌龟来获取源码或者上传源码了. 在Linux中,可以使用命令: git clone https://github.com/ajaxorg/ace.

ASP.NET实现用户在线检测的类源码

//online.cs(用户在线检测) /*程序实现思路: 该用户有以下几个属性: name:用户名 sessionID:用户ID,通过它唯一表示一个用户 iswhere :附加信息,用户当前所在位置 lasttime:用户登陆时间 curtime:本次刷新时间 在客户端,使用一个IFRAME,装载一个刷新页面,每隔XX秒更新一下他的名字对应的curtime,就表示他仍然在 在服务器端,建立一个守护线程,每隔固定时间就运行一遍,然后判断当前所有用户列表中的时间间隔是否超出了规定的时间,如果超出,