部署 draw.io 自服务

基于 Docker / Kubernetes 部署 Draw.io 有以下几种常见方式,你可以根据实际需求选择最适用的方案。

目标镜像 https://hub.docker.com/r/jgraph/drawio


✅ 一、快速启动(无持久化,适合临时使用)

docker run -it --rm --name=draw \
  -p 8080:8080 -p 8443:8443 \
  jgraph/drawio

✅ 二、长期运行(推荐,带重启策略)

docker run -d --name=draw \
  --restart=always \
  -p 8080:8080 -p 8443:8443 \
  jgraph/drawio
  • 使用 -d 后台运行,--restart=always 保证服务持续可用。

✅ 三、使用 Docker Compose(便于管理)

创建 docker-compose.yml 文件:

version: '3'
services:
  draw:
    image: jgraph/drawio
    container_name: draw
    restart: always
    ports:
      - "8080:8080"
      - "8443:8443"
    environment:
      TZ: Asia/Shanghai

启动服务:

docker-compose up -d
  • 优点:结构清晰,便于后续扩展(如挂载存储、配置 Nginx 等)。

✅ 四、基于 kubernetes 部署

yaml 仅供参考

apiVersion: apps/v1
kind: Deployment
metadata:
  name: drawio
  namespace: tools

spec:
  selector:
    matchLabels:
      app: drawio
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 20
      maxUnavailable: 20
  replicas: 1
  template:
    metadata:
      labels:
        app: drawio
    spec:
      nodeSelector:
        worker: worker1
      containers:
        - name: drawio
          image: ccr.ccs.tencentyun.com/jansora/drawio:28.2.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080

---

apiVersion: v1
kind: Service
metadata:
  name: drawio
  namespace: tools
spec:
  selector:
    app: drawio
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
      name: http



---

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: drawio-ingress
  namespace: tools

  annotations:
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true" # 3030 -> 443 http 强制跳转 https
    nginx.ingress.kubernetes.io/hsts: "false"
spec:
  ingressClassName: nginx
  tls:
    - secretName: wildcard.jansora.com
  rules:
    - host: draw.jansora.com
      http:
        paths:
          - backend:
              service:
                name: drawio
                port:
                  number: 8080
            pathType: Prefix
            path: /

示例网站

https://draw.jansora.com/

评论栏