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
部署实践建议
- 开发环境:直接使用默认H2配置快速启动
- 生产环境:
- 必须配置外部数据库(MySQL/PostgreSQL)
- 建议配置持久化存储
- 考虑添加资源限制(CPU/Memory)
- Kubernetes集成:确保kubeconfig文件正确挂载
- 时区问题:根据实际位置调整TZ环境变量
常见问题排查
- 端口冲突:检查10000和10030端口是否被占用
- 权限问题:确保Docker socket有适当访问权限
- 数据库连接:生产环境务必验证数据库连接字符串
- 健康检查失败:增加retries次数或延长interval间隔
总结
通过这份Docker Compose配置,开发者可以快速搭建StreamPark运行环境。对于生产部署,建议进一步考虑高可用配置、监控集成等进阶方案。理解每个配置项的作用,有助于根据实际需求进行定制化调整。