10分钟搭建Earthworm开发环境:Docker全流程自动化部署指南

10分钟搭建Earthworm开发环境:Docker全流程自动化部署指南

【免费下载链接】earthworm Learning English through the method of constructing sentences with conjunctions 【免费下载链接】earthworm 项目地址: https://gitcode.com/GitHub_Trending/ea/earthworm

开发环境痛点与解决方案

本地开发时是否遇到过这些问题:PostgreSQL版本冲突、Redis配置繁琐、Logto认证服务部署复杂?Earthworm通过Docker容器化方案将开发环境搭建时间从2小时压缩到10分钟,实现"一键启动全栈开发环境"。本文将详解基于docker-compose.yml的容器化部署方案,即使是Docker新手也能顺利完成环境配置。

环境准备清单

开始前请确保已安装以下工具:

依赖项版本要求验证命令
Docker24.0.0+docker --version
Node.jsv20+node --version
pnpm8+pnpm -v

官方文档要求:README.md中详细列出了环境要求及版本兼容性说明

硬件配置建议

  • 内存:至少8GB(Docker容器同时运行PostgreSQL、Redis、Logto时需占用约4GB内存)
  • 磁盘空间:预留10GB以上(含镜像、数据库文件及项目依赖)

Docker容器架构解析

Earthworm采用多容器架构设计,通过docker-compose.yml定义5个核心服务:

mermaid

核心服务说明:

服务名镜像用途端口映射
dbpostgres:14-alpine主数据库5433:5432
redisredis:5-alpine缓存服务6379:6379
logtosvhd/logto:1.18.0认证系统3010:3010
logtoPostgrespostgres:14-alpineLogto数据库内部服务

分步实施指南

1. 克隆代码仓库

git clone https://gitcode.com/GitHub_Trending/ea/earthworm
cd earthworm

2. 安装项目依赖

corepack enable  # 确保pnpm可用
pnpm install      # 安装所有工作区依赖

3. 配置环境变量

复制环境变量模板文件并根据需要调整:

# 后端环境配置
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

4. 初始化Logto认证数据

解压预置的Logto数据库初始化数据:

unzip logto_db_init_data.zip -d .volumes/

初始管理员账户:admin/WkN7g5-i8ZrJckX,管理界面:http://localhost:3011

5. 启动Docker服务集群

# 启动所有依赖服务
pnpm docker:start

# 验证服务状态
docker compose ps

成功启动后状态示例:

NAME                   IMAGE                  COMMAND                  STATUS              PORTS
earthworm_db_1         postgres:14-alpine     "docker-entrypoint.s…"   Up 5 minutes        0.0.0.0:5433->5432/tcp
earthworm_redis_1      redis:5-alpine         "docker-entrypoint.s…"   Up 5 minutes        0.0.0.0:6379->6379/tcp
earthworm_logto_1      svhd/logto:1.18.0      "sh -c 'npm run cli …"   Up 5 minutes        0.0.0.0:3010->3010/tcp, 0.0.0.0:3011->3011/tcp

6. 初始化应用数据库

pnpm db:init       # 创建数据表结构
pnpm db:upload     # 导入初始课程数据

7. 启动开发服务器

# 并行启动前后端开发服务
pnpm dev:serve &   # 后端API服务(http://localhost:3000)
pnpm dev:client    # 前端Nuxt服务(http://localhost:3001)

验证开发环境

访问前端应用:http://localhost:3001,应能看到Earthworm主界面:

应用首页预览

验证数据库连接:

# 连接主数据库
psql -h localhost -p 5433 -U postgres earthworm

# 查询课程数据
SELECT COUNT(*) FROM courses;  # 应返回导入的课程数量

常见问题解决

Docker权限问题

Linux系统可能遇到权限错误:

permission denied while trying to connect to the Docker daemon socket

解决方案:

sudo usermod -aG docker $USER
newgrp docker  # 无需重启生效

数据库连接失败

检查docker-compose.yml中数据库配置:

services:
  db:
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: earthworm

确保与.env中的DATABASE_URL匹配。

Logto认证失败

确认Logto服务正常启动:

docker logs earthworm_logto_1  # 查看Logto服务日志

开发环境管理命令

命令用途
pnpm docker:start启动所有Docker服务
pnpm docker:stop停止所有Docker服务
pnpm docker:delete删除容器(保留数据)
pnpm docker:down完全清理(含数据卷)
pnpm db:migrate执行数据库迁移

总结与后续步骤

通过Docker Compose实现的容器化环境,解决了Earthworm开发过程中的"环境一致性"难题。下一步可参考:

提示:开发过程中遇到问题,可先查阅常见问题文档或提交issue反馈。

希望本指南能帮助你快速上手Earthworm开发,欢迎通过提交PR参与项目贡献!

【免费下载链接】earthworm Learning English through the method of constructing sentences with conjunctions 【免费下载链接】earthworm 项目地址: https://gitcode.com/GitHub_Trending/ea/earthworm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值