分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

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

发布时间:2023-09-06 02:00责任编辑:郭大石关键词:暂无标签

  之前入坑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:

  

  

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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved