当前位置: 首页 > news >正文

极狐GitLab如何启用和配置PlantUML?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channel=content&utm_source=csdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

极狐GitLab 在 5 月 28 日正式发布了 AI 产品驭码CodeRider。现已开启免费试用,登录官网:https://coderider.gitlab.cn/ 即可申请试用。

更多关于极狐GitLab :https://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。

学习极狐GitLab 的相关资料:

  1. 极狐GitLab 官网:https://gitlab.cn
  2. 极狐GitLab 官网文档:https://docs.gitlab.cn
  3. 极狐GitLab 论坛:https://forum.gitlab.cn/
  4. 极狐GitLab 安装配置:https://gitlab.cn/install
  5. 极狐GitLab 资源中心:https://resources.gitlab.cn/
  6. AI 产品驭码CodeRider:https://coderider.gitlab.cn/

搜索【极狐GitLab】公众号,后台输入加群,备注gitlab,即可加入官方微信技术交流群。

在极狐GitLab 中启用和配置 PlantUML 集成后,您可以在片段、wiki 和仓库中创建图表。此集成为所有 SaaS 用户启用,不需要任何额外配置。

在私有化部署实例上设置集成,您必须:

  1. 配置您的 PlantUML 服务器。

  2. 配置本地 PlantUML 访问。

  3. 配置 PlantUML 安全。

  4. 启用集成。

完成集成后,PlantUML 将 plantuml 代码块转换为 HTML 图像标签,源指向 PlantUML 实例。PlantUML 图表分隔符 @startuml/@enduml 不是必需的,它们被 plantuml 代码块替换:

  • Markdown 文件,扩展名为 .md:
Bob -> Alice : hello
Alice -> Bob : hi

有关其它可接受的扩展名,请查看 languages.yaml 文件。

  • AsciiDoc 文件,扩展名为 .asciidoc、.adoc 或 .asc:
[plantuml, format="png", id="myDiagram", width="200px"]
----
Bob->Alice : hello
Alice -> Bob : hi
----
  • reStructuredText
.. plantuml:::caption: Caption with **bold** and *italic*Bob -> Alice: helloAlice -> Bob: hi

尽管您可以使用 uml:: 指令来与 sphinxcontrib-plantuml 兼容,但极狐GitLab 仅支持 caption 选项。

如果正确配置了 PlantUML 服务器,以下示例应该呈现图表而不是代码块:

Bob -> Alice : hello
Alice -> Bob : hi

在代码块内,您可以添加 PlantUML 支持的任何图表,例如:

  • Activity
  • Class
  • Component
  • Object
  • Sequence
  • State
  • Use Case

您可以将参数添加到代码块定义:

  • format:可以是png(默认)或svg。谨慎使用 svg,因为并非所有浏览器都支持,Markdown 也不支持。

  • id:添加到图表 HTML 标签的 CSS ID。

  • width:添加到图像标签的宽度属性。

  • height:添加到图像标签的高度属性。

Markdown 不支持任何参数,始终使用 PNG 格式。

配置您的 PlantUML 服务器

在极狐GitLab 中启用 PlantUML 之前,请设置您自己的 PlantUML 服务器来生成图表:

  • 在 Docker 中.

  • 在 Debian/Ubuntu 中.

Docker

要在 Docker 中运行 PlantUML 容器,请运行以下命令:

docker run -d --name plantuml -p 8080:8080 plantuml/plantuml-server:tomcat

PlantUML URL 是运行容器的服务器的主机名。

在 Docker 中运行极狐GitLab 时,它必须有权访问 PlantUML 容器。
为此,请使用 Docker Compose。
在下面基本的 docker-compose.yml 文件中,极狐GitLab 可以通过 URL http://plantuml:8080/ 访问 PlantUML:

version: "3"
services:gitlab:image: 'gitlab/gitlab-ee:12.2.5-ee.0'environment:GITLAB_OMNIBUS_CONFIG: |nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n    proxy_cache off; \n    proxy_pass  http://plantuml:8080/; \n}\n"plantuml:image: 'plantuml/plantuml-server:tomcat'container_name: plantuml
Debian/Ubuntu

您可以使用 Tomcat 在 Debian/Ubuntu 发行版中安装和配置 PlantUML 服务器:

  1. 运行以下命令,从源代码创建一个plantuml.war 文件:
sudo apt-get install graphviz openjdk-8-jdk git-core maven
git clone https://github.com/plantuml/plantuml-server.git
cd plantuml-server
mvn package
  1. 使用以下命令部署上一步中的 .war 文件:
sudo apt-get install tomcat8
sudo cp target/plantuml.war /var/lib/tomcat8/webapps/plantuml.war
sudo chown tomcat8:tomcat8 /var/lib/tomcat8/webapps/plantuml.war
sudo service tomcat8 restart

Tomcat 服务应该重新启动。 重启完成后,PlantUML 服务已准备就绪并正在侦听端口 8080 上的请求:http://localhost:8080/plantuml

要更改这些默认值,请编辑 /etc/tomcat8/server.xml 文件。

NOTE:使用此方法时,默认 URL 不同。基于 Docker 的镜像使服务在根 URL 处可用,没有相对路径。相应地调整下面的配置。

配置本地 PlantUML 访问

PlantUML 服务器在您的服务器上本地运行,因此默认情况下无法从外部访问。您的服务器必须捕获对 https://gitlab.example.com/-/plantuml/ 的外部 PlantUML 调用,并将它们重定向到本地 PlantUML 服务器。根据您的设置,URL 为以下之一:

  • http://plantuml:8080/
  • http://localhost:8080/plantuml/

如果您使用 TLS 运行极狐GitLab,则必须配置此重定向,因为 PlantUML 使用不安全的 HTTP 协议。

Google Chrome 86+ 等较新的浏览器不会在通过 HTTPS 提供的页面上加载不安全的 HTTP 资源。

启用重定向:
  1. 根据您的设置方法,在 /etc/gitlab/gitlab.rb 中添加以下行:
# Docker deployment
nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n    proxy_cache off; \n    proxy_pass  http://plantuml:8080/; \n}\n"# Built from source
nginx['custom_gitlab_server_config'] = "location /-/plantuml { \n rewrite ^/-/(plantuml.*) /$1 break;\n proxy_cache off; \n proxy_pass http://localhost:8080/plantuml; \n}\n"
  1. 要激活更改,请运行以下命令:
sudo gitlab-ctl reconfigure
配置 PlantUML 安全

PlantUML 具有允许获取网络资源的功能。如果您自托管 PlantUML 服务器,请设置网络控制来将其隔离。

@startuml
start' ...!include http://localhost/
stop;
@enduml
启用 PlantUML 集成

配置本地 PlantUML 服务器后,您就可以启用 PlantUML 集成:

  1. 以管理员用户身份登录极狐GitLab。
  2. 在左侧边栏中,选择 搜索或转到。
  3. 选择 管理中心。
  4. 在左侧边栏中,转到 设置 > 通用 并展开 PlantUML 部分。
  5. 选中 启用 PlantUML 复选框。
  6. 将 PlantUML 实例设置为 https://gitlab.example.com/-/plantuml/,然后点击 保存修改。
  • 对于运行 v1.2020.9 及更高版本的 PlantUML 服务器,例如 plantuml.com,您必须设置 PLANTUML_ENCODING 环境变量来启用 deflate 压缩。在 Omnibus GitLab 中,您可以使用以下命令在 /etc/gitlab.rb 中设置此值:
 gitlab_rails['env'] = { 'PLANTUML_ENCODING' => 'deflate' }

在 GitLab Helm chart 中,您可以将变量添加到 global.extraEnv 部分,如下所示:

global:
extraEnv:PLANTUML_ENCODING: deflate
  • 对于极狐GitLab 13.1 及更高版本,PlantUML 集成现在需要 URL 中的 header前缀,区分不同的编码类型。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Django】在vscode中运行调试Django项目(命令及图形方式)
  • 观成科技:活跃窃密木马TriStealer加密通信分析
  • setsockopt选项对tcp速度
  • HTTP 协议浅析
  • k8s 公共服务
  • 问题处理--No such file or directory
  • Springboot+Maven多模块项目开发
  • 构建稳固与安全的网络环境:从微软蓝屏事件看软件更新流程与应急响应
  • vue3中Composition API写法 <script setup>标签中哪些可以不用导入即可使用?
  • js箭头函数与普通函数的this指向问题
  • node和npm安装;electron、 electron-builder安装
  • React中引入使用本地图片
  • 配置单区域OSPF
  • 集成学习在数学建模中的应用
  • 开发日志:windows修复SSL漏洞CVE-2016-2183(3389端口)
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Brief introduction of how to 'Call, Apply and Bind'
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • exports和module.exports
  • October CMS - 快速入门 9 Images And Galleries
  • session共享问题解决方案
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 阿里研究院入选中国企业智库系统影响力榜
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 搞机器学习要哪些技能
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 记一次删除Git记录中的大文件的过程
  • 理清楚Vue的结构
  • 聊聊sentinel的DegradeSlot
  • 如何编写一个可升级的智能合约
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • ​Redis 实现计数器和限速器的
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #VERDI# 关于如何查看FSM状态机的方法
  • #数据结构 笔记一
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Matlab)使用竞争神经网络实现数据聚类
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (生成器)yield与(迭代器)generator
  • (四)JPA - JQPL 实现增删改查
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)模仿学习-完成后台管理页面查询
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .NET Core 项目指定SDK版本
  • .NET Core跨平台微服务学习资源
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖