提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 企业级最流行的私有代码仓库是 Gitlab, 一开始我也打算部署 Gitlab作为私有代码仓库. 但部署完 d 成后发现, Gitlab 资源占用太大了.优化之后也要占用 3g 内存,最后只好放弃这一方案. 随后发现了 Gitea.Gogs 这两个轻量级的私有仓库,两个都是优秀的轻量级私有仓库. 后对它们进行了对比,发现 Gitea 是从 Gogs 项目 fork 出的项目. 官方给出了 fork 理由:http…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 针对私有镜像仓库的问题,Docker 官方提供了搭建仓库服务的镜像服务:registry,使用此镜像就可以部署私有仓库. 但官方提供的这个服务特别轻量化,甚至连 UI 管理页面都没有, 这也就带来了较高的管理维护成本. 针对这个问题开源社区有不少为 registry 提供 UI管理 的项目,也有基于 registry,二次开发的项目 其中基于 registry 二次开发的代表项目是 Harbor, 也是企业级中比…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 这一篇主要讲述部署一个 Web 项目,项目是我曾经搞的一个 VUE 模板项目:https://github.com/orca-studio/vue-template/tree/vite-3.X 目前还没有搭建镜像私有仓库和自动化部署流程. 只能本地打包 Docker 镜像,上传 DockerHub,再服务器拉取镜像,进行启动. 本地打包 Docker 需要本地具有 Docker 环境. Windows 或 Mac…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 配置接口代理 前后端分离情况下,前端请求后端接口最常用的一种方式就是使用反向代理,反向代理会让浏览器认为是同源路径,也就实现了跨域操作. 目前流行的前端打包器,webpack.vite 在开发模式,都具有反向代理的配置. Nginx 服务器,反向代理也是最重要的功能之一,之前的 网关实现方式就是使用了反向代理.此篇中主要是配置接口代理 和 通过镜像参数 配置 Nginx 接口代理 Dev 测试 当前使用的 web…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 持续部署概述 持续部署是能以自动化方式,频繁而且持续性的,将软件部署到生产环境.使软件产品能够快速迭代. 在之前部署 web 项目时,都是手动进行部署 拉取代码 ---> 编译项目 ---> 打包镜像 ---> 推送镜像仓库 ---> 服务器拉取新镜像 ---> 停止和移除旧容器 ---> 启动新容器 这一整套部署步骤枯燥又费时. 持续部署就是使用工具自动处理整套步骤.代码在提交之后自动…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 对于个人来说,私有NPM仓库 作用性基本很小,但是对于企业,私有NPM仓库 可以保护代码暴露,具有很大的意义. 也是为了学习搭建 私有NPM仓库,就在持续部署中集成了私有仓库. 开源社区,有两个广泛使用的 私有NPM仓库 项目: Sinopia Verdaccio Sinopia 项目官方于2019年已经不再维护,也就是现在已经不在推荐使用此项目. Verdaccio 项目是从 Sinopia项目 fork 出来…
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 这一篇中使用 Nginx 部署网关中心,用来代理服务器中服务.网关中心有优点也有缺点,也可以不采用网关系统. 部署 Nginx网关 系统需要使用域名,没有域名无法处理 网关概述 网关(Gateway) 是转发其它服务器通信数据的服务器,接收客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行 处理.有时候客户端可能都不会察觉,自己的通信目标是一个网关. 这是 维基百科 中对 网关 的描述. Nginx…
一.问题由来 我们组用jenkins部署了持续集成环境,(jenkins部署war包到远程服务器的tomcat). 每次提交了代码,jenkins上一键构建,就可以自动拉取最新代码,打war包,热部署到远程环境上的tomcat. 一切都很好,只是一次用jconsole偶然连上去一看,远程环境上的tomcat上,线程数竟多达700多个... 二.排查代码 查看线程堆栈,几百个线程中,线程名为“UserService-InformImAndCcm”打头的,多达130+,但是在代码中,只搜到一处线程池…
自动集成有很多种方案,本例用到的工具是Jenkins(前身Hudson)+Gradle+Jetty,关于Gradle可参考上一篇,Gradle常见问题. 本例项目名称: WAP Jetty 安装Jenkins 本例用的是最新版Jetty9,在安全上做了升级,直接放在webapps目录部署不能成功,需要在webapps目录下添加文件jenkins.xml,内容如下: <Configure class="org.eclipse.jetty.webapp.WebAppContext"&…
一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载---------------------------------------------------- 1.下载插件Deploy to container 首先需要下载一个Jenkins的插件:Deploy to container Plugin ,可以在Jenkins的系统管理->插件管理->可选插件中查找…