首页
/ Apache StreamPark 项目 Docker Compose 部署指南

Apache StreamPark 项目 Docker Compose 部署指南

2025-07-09 01:36:09作者:沈韬淼Beryl

概述

Apache StreamPark 是一个流处理应用开发管理平台,本文将通过技术视角详细解析其 Docker Compose 部署方案,帮助开发者快速搭建开发测试环境。

核心组件解析

1. 基础配置

部署文件采用 Docker Compose 3.8 版本规范,这是目前较新的编排格式标准,支持多种高级特性:

version: '3.8'

2. 服务定义

主服务 streampark 使用官方镜像 apache/streampark:2.2.0,这是经过Apache基金会验证的稳定版本。

端口映射配置:

  • 10000端口:Web控制台访问端口
  • 10030端口:内部服务通信端口
services:
  streampark:
    image: apache/streampark:2.2.0
    ports:
      - "10000:10000"
      - "10030:10030"

3. 环境变量配置

时区设置为亚洲/上海,确保日志时间显示正确:

environment:
  - TZ=Asia/Shanghai

数据库支持三种选项:

  • H2(默认嵌入式数据库,适合快速体验)
  • MySQL(生产推荐)
  • PostgreSQL(生产推荐)
  - DATASOURCE_DIALECT=h2 # h2, mysql, pgsql

对于生产环境,建议使用MySQL或PostgreSQL,需要配置相应连接参数:

# MySQL示例
# - DATASOURCE_URL=jdbc:mysql://localhost:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8

# PostgreSQL示例  
# - DATASOURCE_URL=jdbc:postgresql://localhost:5432/streampark?stringtype=unspecified
# - DATASOURCE_USERNAME=root
# - DATASOURCE_PASSWORD=streampark

4. 卷挂载配置

关键挂载点确保系统正常运行:

  • Docker socket:使StreamPark能够管理Docker容器
  • 主机hosts文件:用于服务发现
  • Kube配置:支持Kubernetes集成
volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - /etc/hosts:/etc/hosts:ro
  - ~/.kube:/root/.kube:ro

5. 高级配置

特权模式确保容器有足够权限执行操作:

privileged: true

健康检查机制定期验证服务可用性:

healthcheck:
  test: [ "CMD", "curl", "http://streampark:10000" ]
  interval: 5s
  timeout: 5s
  retries: 120

6. 网络配置

使用桥接网络模式,为后续可能的服务扩展预留空间:

networks:
  streampark:
    driver: bridge

部署实践建议

  1. 开发环境:直接使用默认H2配置快速启动
  2. 生产环境
    • 必须配置外部数据库(MySQL/PostgreSQL)
    • 建议配置持久化存储
    • 考虑添加资源限制(CPU/Memory)
  3. Kubernetes集成:确保kubeconfig文件正确挂载
  4. 时区问题:根据实际位置调整TZ环境变量

常见问题排查

  1. 端口冲突:检查10000和10030端口是否被占用
  2. 权限问题:确保Docker socket有适当访问权限
  3. 数据库连接:生产环境务必验证数据库连接字符串
  4. 健康检查失败:增加retries次数或延长interval间隔

总结

通过这份Docker Compose配置,开发者可以快速搭建StreamPark运行环境。对于生产部署,建议进一步考虑高可用配置、监控集成等进阶方案。理解每个配置项的作用,有助于根据实际需求进行定制化调整。