1 极速搭建 Earthworm 开发环境:容器化部署全攻略
开发环境痛点剖析
开发环境配置耗费数小时?数据库版本冲突导致项目无法启动?认证服务部署流程复杂劝退新手?这些问题严重阻碍开发者快速上手 Earthworm 项目。本文提供一套容器化解决方案,将环境搭建时间压缩至10分钟内,让开发者专注于功能实现而非环境配置。
环境配置方案
验证系统环境
⌛ 准备中:检查本地环境是否满足以下要求:
# 检查 Docker 版本(需 24.0.0+)
docker --version
# 检查 Node.js 版本(需 v20+)
node --version
# 检查 pnpm 版本(需 8+)
pnpm -v
📌 关键步骤:若版本不满足要求,使用官方安装包更新对应软件。Linux 用户需确保当前用户拥有 Docker 操作权限。
获取项目代码
⌛ 准备中:克隆项目代码库并进入项目目录
git clone https://gitcode.com/GitHub_Trending/ea/earthworm
cd earthworm
安装依赖包
⌛ 准备中:安装项目所有依赖
corepack enable
pnpm install
🔧 提示:国内用户可配置 npm 镜像源加速依赖安装:pnpm config set registry https://registry.npmmirror.com
配置环境变量
📌 关键步骤:创建环境变量文件
# 配置后端环境变量
cp ./apps/api/.env.example ./apps/api/.env
# 配置前端环境变量
cp ./apps/client/.env.example ./apps/client/.env
🔧 编辑 apps/api/.env 文件,确保以下核心配置正确:
# 数据库连接配置
DATABASE_URL=postgresql://postgres:password@localhost:5433/earthworm
# 缓存服务配置
REDIS_URL=redis://localhost:6379
# 认证服务配置
LOGTO_ENDPOINT=http://localhost:3010
服务部署流程
初始化认证服务数据
📌 关键步骤:解压 Logto 数据库初始化数据
unzip logto_db_init_data.zip -d .volumes/
✅ 验证点:检查 .volumes/logto/postgres 目录是否生成,确保初始化数据已正确解压。
启动容器集群
⌛ 准备中:启动所有依赖服务
pnpm docker:start
🔍 验证点:检查服务状态
docker compose ps
正常运行时应显示以下服务状态:
- earthworm_db_1:主数据库服务
- earthworm_redis_1:缓存服务
- earthworm_logto_1:认证服务
- earthworm_logtoPostgres_1:认证系统数据库
服务关系说明
各服务功能、端口与依赖关系:
-
主数据库服务
- 功能:存储应用核心数据
- 端口:5433(映射容器内5432)
- 依赖:无
-
缓存服务
- 功能:提供数据缓存和会话存储
- 端口:6379
- 依赖:无
-
认证服务
- 功能:处理用户认证和授权
- 端口:3010(应用访问)、3011(管理界面)
- 依赖:认证系统数据库
-
认证系统数据库
- 功能:存储认证服务相关数据
- 端口:内部服务(不对外暴露)
- 依赖:无
初始化应用数据
📌 关键步骤:创建数据库表结构并导入初始数据
pnpm db:init # 创建数据表
pnpm db:upload # 导入课程数据
🔧 提示:若导入数据失败,检查数据库服务是否正常运行,可通过 docker logs earthworm_db_1 查看数据库日志。
启动开发服务器
⌛ 准备中:启动前后端开发服务
# 启动后端 API 服务
pnpm dev:serve &
# 启动前端 Nuxt 服务
pnpm dev:client
✅ 验证点:访问前端应用 http://localhost:3001,应能看到应用主界面。
开发效率提升
开发环境优化建议
-
资源监控
- 实时监控容器资源占用:
docker stats- 设置资源使用上限,编辑 docker-compose.yml:
services: db: deploy: resources: limits: cpus: '1' memory: 2G -
多环境配置 创建环境配置文件切换脚本:
# 创建 development 环境配置 cp ./apps/api/.env.development ./apps/api/.env # 创建 production 环境配置 cp ./apps/api/.env.production ./apps/api/.env -
自动化脚本 创建快捷启动脚本 start-dev.sh:
#!/bin/bash pnpm docker:start && \ sleep 10 && \ pnpm db:init && \ pnpm db:upload && \ pnpm dev:serve & \ pnpm dev:client
扩展服务集成
-
数据库管理工具 添加 pgAdmin 服务到 docker-compose.yml:
services: pgadmin: image: dpage/pgadmin4 ports: - "5050:80" environment: - PGADMIN_DEFAULT_EMAIL=admin@example.com - PGADMIN_DEFAULT_PASSWORD=password depends_on: - db -
API 文档工具 启动 Swagger UI 服务查看 API 文档:
pnpm dev:api-docs
故障排除流程
服务启动失败
-
检查容器日志:
docker logs [容器名称] -
常见问题排查:
- 端口冲突:使用
netstat -tulpn检查占用端口 - 权限问题:确保 .volumes 目录有读写权限
- 配置错误:核对环境变量与 docker-compose 配置
- 端口冲突:使用
数据库连接问题
-
验证数据库连接:
psql -h localhost -p 5433 -U postgres -d earthworm -
检查数据库服务状态:
docker compose exec db pg_isready -
重置数据库:
pnpm docker:down rm -rf .volumes/db pnpm docker:start pnpm db:init pnpm db:upload
认证服务问题
-
检查 Logto 服务状态:
docker compose exec logto npm run status -
访问 Logto 管理界面:
- 地址:http://localhost:3011
- 默认账户:admin/WkN7g5-i8ZrJckX
总结
通过容器化方案,我们实现了 Earthworm 开发环境的快速搭建与部署。这种方式不仅解决了环境一致性问题,还大幅提升了开发效率。随着项目的发展,你可以基于本文提供的扩展方案,进一步定制适合自己的开发环境。
掌握这些技能后,你将能够:
- 在10分钟内完成开发环境搭建
- 轻松管理多个服务组件
- 快速排查和解决环境问题
- 根据需求扩展开发工具链
现在,你已经准备好开始 Earthworm 项目的开发之旅了!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust090- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00
