
gtramontina/diagrams本Docker镜像为diagrams工具提供容器化运行环境。diagrams是一个基于Python的开源库,用于通过代码绘制云系统架构图,支持AWS、Azure、GCP等主流云服务提供商的图标,以及Kubernetes、Docker等技术组件。该镜像封装了diagrams及其所有依赖(如Python、Graphviz等),用户可直接在容器中执行架构图生成脚本,无需在本地配置复杂环境。
diagrams库及Graphviz等依赖diagrams语***范的架构图生成脚本(.py文件)通过以下命令在容器中执行脚本并生成架构图,输出文件将保存至本地out目录:
shcat <diagram-file>.py | docker run -i --rm -v $(pwd)/out:/out diagrams:<version>
| 参数 | 说明 |
|---|---|
-i | 以交互模式运行容器,允许接收标准输入(通过管道传递的Python脚本) |
--rm | 容器退出后自动删除,避免残留未使用的容器实例 |
-v $(pwd)/out:/out | 将本地当前目录下的out目录挂载至容器内的/out目录,用于输出PNG文件 |
diagrams:<version> | 指定镜像版本(如diagrams:latest),建议使用具体版本号确保稳定性 |
创建输出目录:
在本地创建用于存放输出PNG的目录:
shmkdir -p out
编写架构图脚本:
创建example_architecture.py文件,内容示例(使用diagrams语法):
pythonfrom diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB # 设置show=False避免容器内尝试打开图形界面 with Diagram("AWS Web Service Architecture", show=False, direction="LR"): ELB("负载均衡器") >> EC2("Web服务器") >> RDS("数据库")
执行容器命令生成架构图:
通过管道传递脚本并运行容器:
shcat example_architecture.py | docker run -i --rm -v $(pwd)/out:/out diagrams:latest
查看输出结果:
生成的AWS Web Service Architecture.png文件将保存在本地out目录中。
out目录存在且有写入权限,否则可能导致生成失败show=False(如示例),避免容器内尝试打开图形界面导致错误diagrams库,可通过指定镜像标签(如diagrams:1.0.0)控制版本diagrams官方库manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务