极狐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前缀,区分不同的编码类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流

在当今大数据智能化时代,企业需要强大的报表工具来深度挖掘海量数据,辅助运营决策。在众多BI报表工具中,VeryReport报表软件脱颖而出,成为中国企业数据分析的首选利器。 VeryReport报表软件: 专业处理复杂的中国式报…

【WebRTC】Duplex通信是什么意思?

【背景】 尝试自己从零开始构建一个适用于局域网投屏的WebRTC应用,在学习过程中总是遇到Duplex这个词,而且开服务时还需要指定Duplex属性,所以觉得有必要了解一下什么是Duplex。 【知识】 “Full duplex”指的是一种通信模式,在…

设计模式七大原则(七)合成复用原则

定义 合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/ 聚合(contanis-a),而不是继承关系达到软件复用的目的 类的复用一般分为两种:一种是组合/聚合,另一种则是继承。 继承复用…

如何将MP3或WAV文件解码成PCM文件

文章目录 概要整体架构流程技术细节 概要 本文介绍使用 FFmpeg,将MP3或WAV文件解码成PCM文件的方法。 整体架构流程 首先,使用的 FFmpeg 库要支持 MP3/WAV 解码功能,即编译的时候要加上(编译 FFmpeg 库可以参考:Win…

通义千问AI模型对接飞书机器人-模型配置(2-1)

一 背景 根据业务或者使用场景搭建自定义的智能ai模型机器人,可以较少我们人工回答的沟通成本,而且可以更加便捷的了解业务需求给出大家设定的业务范围的回答,目前基于阿里云的通义千问模型研究。 二 模型研究 参考阿里云帮助文档&#xf…

CSRF+XSS组合攻击实战

目录 0x01安装靶场 0x02分析功能点的请求接口,构造恶意请求 0x03寻找xss漏洞 0x01安装靶场 下载源码,解压到网站根目录 1.修改数据库配置文件 打开源码,进入到include目录下,打开数据库配置文件database.inc.php 将数据库的…

linux服务器数据库备份脚本

linux服务器下面备份数据库脚本 #获取当前时间戳 now_datedate %Y%m%d; #备份保存的路径 path/app/bak/$now_date; #不存在则创建文件夹 mkdir -p $path #备份数据库 /usr/bin/mysqldump -uroot -pyl2vXBS%FjGoSfby -hlocalhost --lock-all-tables --databases sdbj > $pa…

arcgis紧凑型切片缓存(解决大范围切片,文件数量大的问题)

ArcGIS 切片缓存的紧凑型存储格式是一种优化的存储方式,用于提高切片缓存的存储效率和访问速度。紧凑型存储格式将多个切片文件合并为一个单一的 .bundle 文件,从而减少文件系统的开销和切片的加载时间。这类格式已经应用很久了,我记得2013我…

组内第一次会议

会议内容 1、科研平台使用 增删改查对文件 cp -r /root/mmdetection/dataset/ /root/user/wbzExperiment/mmdetection/ rm -r /root/user/yolov5-master tar -czvf test03.tar.gz test03/ unzip abc.zip 上传文件、解压文件:要在自己的目录中,进入…

昇思MindSpore 应用学习-ResNet50迁移学习-CSDN

日期 心得 昇思MindSpore 应用学习-ResNet50迁移学习 (AI 代码解析) 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模…

React中Hooks几个有用的 ref

先看下来自官方的介绍,当你希望组件“记住”某些信息,但又不想让这些信息 触发新的渲染 时,你可以使用 ref 。 如何向组件添加 ref如何更新 ref 的值ref 与 state 有何不同如何安全地使用 ref 1.给你的组件添加 ref 你可以通过从 React 导…

Isaac Lab

一、安装isaac sim conda create -n isaaclab python=3.10 conda activate isaaclab pip install torch==2.2.2 --index-url https://download.pytorch.org/whl/cu121 pip install isaacsim-rl isaacsim-replicator isaacsim-extscache-physics isaacsim-extscache-kit-sdk isa…

编织文字的魔法:探索WebKit的CSS文本效果

编织文字的魔法:探索WebKit的CSS文本效果 在现代网页设计中,文本不仅仅是信息的载体,更是视觉表现的重要元素。WebKit,作为众多浏览器的核心引擎,支持一系列CSS文本效果,使开发者能够创造出引人注目的文本…

如何分清楚常见的 Git 分支管理策略Git Flow、GitHub Flow 和 GitLab Flow

Git Flow、GitHub Flow 和 GitLab Flow 是几种常见的 Git 分支管理策略,它们帮助开发团队更高效地管理代码库和协同开发。 Git Flow Git Flow 是一种功能强大的分支管理模型,由 Vincent Driessen 提出,适用于发布周期较长、需要严格管理发布…

【ELK】简述

ELK 堆栈的作用 大规模日志管理与分析 随着系统规模的扩大,应用程序、服务器和网络设备会产生大量的日志数据。ELK 堆栈可以集中收集、存储和索引这些分散在不同服务器和系统中的日志,方便快速检索和分析,帮助您快速定位系统故障、异常事件和…

Python函数基础:构建代码逻辑的基石(补全篇)

在前面我已经编写过一篇,python函数基础的博文,相信有基础的同学应该看得出来,那一篇的基础内容也是不全的,于是就有了这个补全篇。补全篇,补充了变量的作用与(global与nonlocal)、递归函数、闭…

企业在实施网络安全等级保护时需要采取哪些技术措施?

企业在实施网络安全等级保护时,需要采取一系列技术措施来确保信息系统的安全性。根据最新的网络安全等级保护要求,以下是一些关键的技术措施: 防火墙和入侵检测系统(IDS/IPS):部署防火墙和入侵检测系统来监…

AI、AGI、AIGC与AIGC、NLP、LLM,ChatGPT区分

这些术语和技术都是人工智能(AI)领域的重要组成部分,它们之间有复杂的关系和相互交织的依存。以下是它们之间的关系和各自的定义: AI(人工智能): 定义:AI是指能够执行通常需要人类智…

acwing796-子矩阵的和-前缀和

s矩阵是全局变量,维度n*m,从1~n和 1~m存储元素【0】【0】~【0】【m】和【0】【0】~【n】【0】分别存储的都是0.s矩阵刚开始是存储输入的元素,后面用于存储前缀和。 s矩阵的意思是s【i】【j】表示从【0】【0】到【i】【j】为对角线的矩阵里面所有元素的和…

多类别支持向量机(Multi-class SVM)

多类别支持向量机(Multi-class SVM)是一种扩展二分类支持向量机以处理多类别分类问题的方法。常见的方法有“一对一”(one-vs-one)和“一对多”(one-vs-rest)。 一、数学模型理论推导 1.1 一对多&#xf…