You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器中无GUI安装PlantUML?

当然可以!完全不需要依赖X11或GTK就能在Docker里轻量安装PlantUML,我给你整理了两种靠谱的方案,都能把镜像体积控制得很小:

方案一:基于OpenJDK Slim(常用轻量版)

这个方案用Debian系的 slim 版JRE镜像,安装Graphviz时刻意跳过GUI相关依赖,平衡了易用性和体积:

  • 选择openjdk:17-jre-slim作为基础镜像,它比完整版JDK/JRE小很多,只保留核心运行环境
  • 安装Graphviz时,一定要加上--no-install-recommends参数,这会跳过所有可选的GUI依赖,只装PlantUML生成图必需的核心组件
  • 最后清理APT缓存,进一步缩小镜像体积

完整Dockerfile示例:

FROM openjdk:17-jre-slim

# 安装Graphviz核心组件,跳过GUI依赖
RUN apt-get update && apt-get install -y --no-install-recommends graphviz \
    && rm -rf /var/lib/apt/lists/*

# 下载指定版本的PlantUML jar包(可以替换成你需要的版本)
RUN mkdir -p /opt/plantuml \
    && curl -L https://github.com/plantuml/plantuml/releases/download/v1.2024.5/plantuml-1.2024.5.jar -o /opt/plantuml/plantuml.jar

# 创建可直接调用的plantuml命令脚本
RUN echo '#!/bin/sh\njava -jar /opt/plantuml/plantuml.jar "$@"' > /opt/plantuml/plantuml \
    && chmod +x /opt/plantuml/plantuml

# 把plantuml命令加入环境变量
ENV PATH="/opt/plantuml:${PATH}"

# 验证安装(可选,构建时会自动执行)
CMD ["plantuml", "-version"]
方案二:基于Alpine Linux(极致轻量)

如果追求最小镜像体积,Alpine是更好的选择,它的基础镜像本身只有几十MB,加上JRE和Graphviz核心包后,最终镜像大概200MB左右:

FROM openjdk:17-jre-alpine

# Alpine上安装Graphviz核心包,默认就不带GUI依赖
RUN apk add --no-cache graphviz

# 下载PlantUML jar包
RUN mkdir -p /opt/plantuml \
    && wget -O /opt/plantuml/plantuml.jar https://github.com/plantuml/plantuml/releases/download/v1.2024.5/plantuml-1.2024.5.jar

# 创建可执行脚本并加入环境变量
RUN echo '#!/bin/sh\njava -jar /opt/plantuml/plantuml.jar "$@"' > /opt/plantuml/plantuml \
    && chmod +x /opt/plantuml/plantuml
ENV PATH="/opt/plantuml:${PATH}"

# 验证安装
CMD ["plantuml", "-version"]
使用方法

构建镜像后,你可以通过挂载本地目录的方式,让容器处理本地的PlantUML文件:

# 构建镜像(假设Dockerfile叫Dockerfile.plantuml)
docker build -t my-plantuml -f Dockerfile.plantuml .

# 处理本地的diagram.puml文件,生成图片到当前目录
docker run --rm -v $(pwd):/workspace -w /workspace my-plantuml plantuml diagram.puml

这样整个过程完全不需要任何GUI组件,镜像体积也能控制得非常小,完美适配你的需求!

内容的提问来源于stack exchange,提问作者petersohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:32:30