Code Ark(代码方舟,原 DevForge) 是一个开源的 Docker Compose 本地开发环境合集。无需手动安装中间件,即可按需启动 Elasticsearch、Kibana、 Logstash、Kafka、MySQL、PostgreSQL、Redis、RabbitMQ、MinIO、Nacos、RocketMQ、 Seata、Sentinel、Prometheus、Grafana 和 XXL-Job 等常用服务。
适用于 Java、Go、Python、Node.js 等项目的本地开发、接口联调、集成测试和团队环境初始化。
English README · 服务列表 · 快速开始 · 贡献指南
- 开箱即用:每个服务都提供可直接运行的
docker-compose.yml。 - 按需启动:中间件彼此独立,不必一次运行整套基础设施。
- 配置清晰:通过
.env.example管理版本、端口、凭据和资源参数。 - 数据可控:每个目录都说明数据持久化、停止和清理方式。
- 跨平台:适用于 Linux、macOS Docker Desktop 和 Windows WSL 2。
- 适合协作:统一的目录和文档结构可帮助团队快速搭建开发环境。
本仓库面向本地开发与测试,不建议直接作为生产环境配置使用。
Code Ark 覆盖数据库、消息队列、搜索与日志、对象存储、服务治理、分布式事务、任务调度、监控和文档处理等常见开发基础设施。
| 分类 | 服务 | 目录 | 默认端口 | 用途 |
|---|---|---|---|---|
| 搜索与日志 | Elasticsearch + Kibana + Logstash | elastic-start-local |
9200, 5601, 5044 |
全文搜索、日志采集与可视化 |
| 消息队列 | Kafka + Kafka UI | kafka-start-local |
9092, 19000 |
消息流与事件驱动开发 |
| 文档处理 | LibreOffice | libreoffice-start-local |
无 | Headless 文档格式转换 |
| 对象存储 | MinIO | minio-start-local |
9000, 9001 |
S3 兼容对象存储 |
| 可观测性 | Prometheus + Grafana | monitoring-start-local |
19090, 13000 |
指标采集、告警与仪表盘 |
| 数据库 | MySQL 8 | mysql-start-lcoal |
3306 |
关系型数据库 |
| 服务治理 | Nacos | nacos-start-local |
8840, 8848, 9848-9850 |
注册中心与配置中心 |
| AI / OCR | PaddleOCR | ocr-start-local |
18868 |
本地图片文字识别 API |
| 数据库 | PostgreSQL | pgsql-start-local |
5432 |
关系型数据库 |
| 消息队列 | RabbitMQ | rabbitmq-start-lcoal |
5672, 15672 |
AMQP 消息队列与管理台 |
| 缓存 | Redis | redis-start-local |
6379 |
缓存、分布式锁与消息 |
| 消息队列 | RocketMQ | rocketmq-start-local |
15876, 15911, 18180 |
NameServer、Broker 与 Console |
| 分布式事务 | Seata | seata-start-local |
7091, 8091 |
分布式事务协调 |
| 服务治理 | Sentinel | sentinel-start-local |
8858, 8719 |
流量控制、熔断和限流 |
| 任务调度 | XXL-Job | xxjob-start-local |
18081 |
分布式任务调度中心 |
为保持兼容性,
mysql-start-lcoal和rabbitmq-start-lcoal暂时保留了历史目录拼写。
- Docker Engine 或 Docker Desktop
- Docker Compose v2(使用
docker compose命令) - Git
检查环境:
docker --version
docker compose versiongit clone https://github.com/StephenQiu30/code-ark.git
cd code-ark以 PostgreSQL 为例:
cd pgsql-start-local
cp .env.example .env
docker compose up -d
docker compose ps启动带有 Elasticsearch、Kibana 和 Logstash 的 Elastic Stack:
cd elastic-start-local
cp .env.example .env
./start.sh每个服务目录都包含独立 README,请在启动前查看相应的端口、密码、内存和数据卷说明。
在目标服务目录中执行:
# 后台启动
docker compose up -d
# 查看容器状态和日志
docker compose ps
docker compose logs -f
# 停止或移除容器
docker compose stop
docker compose down
# 同时删除命名数据卷(会丢失本地数据)
docker compose down -v- 将服务目录中的
.env.example复制为.env。 - 按需修改镜像版本、端口、用户名、密码和内存限制。
- 不要把包含真实密码、Token 或 API Key 的
.env提交到版本控制。 - 如果修改了默认端口,请同步修改应用程序的连接地址。
code-ark/
├── README.md # 中文项目首页与服务导航
├── README.en.md # English documentation
├── CONTRIBUTING.md # 贡献指南
├── elastic-start-local/ # Elasticsearch、Kibana、Logstash
├── kafka-start-local/ # Kafka 与 Kafka UI
├── minio-start-local/ # MinIO 对象存储
├── monitoring-start-local/ # Prometheus 与 Grafana
├── mysql-start-lcoal/ # MySQL
├── nacos-start-local/ # Nacos
├── pgsql-start-local/ # PostgreSQL
├── rabbitmq-start-lcoal/ # RabbitMQ
├── redis-start-local/ # Redis
├── rocketmq-start-local/ # RocketMQ
├── seata-start-local/ # Seata
├── sentinel-start-local/ # Sentinel
└── xxjob-start-local/ # XXL-Job
可以。每个目录都是独立的 Docker Compose 项目,只会启动当前目录定义的服务。
进入 elastic-start-local,复制 .env.example 后执行 ./start.sh。
脚本会检查 Docker 内存、构建 IK 分词插件并等待服务健康。
普通的 docker compose stop 或 docker compose down 不会删除命名卷。
执行 docker compose down -v 会删除对应数据卷,请谨慎使用。
不建议。本仓库优先考虑本地开发的易用性。生产环境还需要完善的密钥管理、备份、高可用、TLS、访问控制、监控和容量规划。
欢迎提交新的 Docker Compose 开发环境、文档改进和问题修复。开始前请阅读 CONTRIBUTING.md。
如果 Code Ark 对你有帮助,欢迎为仓库点一个 Star,方便更多开发者找到它。
Code Ark 使用 MIT License 开源。