从零到一:Earthworm多服务容器化部署全指南

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

部署架构概览

Earthworm项目采用Docker Compose实现多服务编排,通过单一配置文件管理所有依赖服务。核心架构包含六大服务组件:

  • 主数据库:PostgreSQL 14存储应用核心数据
  • 测试数据库:独立PostgreSQL实例用于开发测试
  • 缓存服务:Redis 5提供数据缓存与会话存储
  • 认证服务:Logto身份认证系统
  • Logto数据库:独立PostgreSQL存储认证数据

服务间通过Docker内部网络通信,对外暴露必要端口。完整配置文件:docker-compose.yml

环境准备与依赖

部署前需确保环境满足以下要求:

  • Docker Engine 20.10+
  • Docker Compose v2+
  • 至少2GB可用内存
  • 10GB磁盘空间

官方推荐通过项目根目录的README.mdREADME.zh-CN.md获取最新环境要求,其中明确记载了docker-compose up -d启动命令。

核心配置解析

数据库服务配置

PostgreSQL主数据库配置确保数据持久化与高可用性:

db:
  restart: always
  image: postgres:14-alpine
  user: postgres
  environment:
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: password
    POSTGRES_DB: earthworm
  volumes:
    - data:/var/lib/postgres/main-data
  healthcheck:
    test: ["CMD-SHELL", "pg_isready"]
    interval: 10s
    timeout: 5s
    retries: 5

测试数据库使用独立端口(5480)避免与主库冲突,便于并行开发测试。

认证服务集成

Logto服务配置实现完整的身份认证流程:

logto:
  restart: always
  depends_on:
    logtoPostgres:
      condition: service_healthy
  image: svhd/logto:1.18.0
  entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"]
  ports:
    - 3010:3010
    - 3011:3011
  environment:
    - DB_URL=postgres://postgres:p0stgr3s@logtoPostgres:5432/logto

服务依赖健康检查确保数据库就绪后才启动,初始化命令自动完成数据库种子数据填充。

持久化存储设计

采用命名卷实现数据持久化:

volumes:
  data:
    driver: local

Logto数据库使用绑定挂载确保数据保存在项目目录:./.volumes/logto_db:/var/lib/postgresql/data

部署步骤与操作

1. 克隆项目代码

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

2. 启动所有服务

docker-compose up -d

该命令会后台启动所有服务组件,首次执行将自动拉取所需镜像。

3. 验证服务状态

docker-compose ps

正常运行时所有服务应显示"Up"状态。

服务访问与端口映射

部署完成后可通过以下端口访问各服务:

服务端口说明
Logto认证3010用户认证入口
Logto管理3011管理员控制台
PostgreSQL5433主数据库
Redis6379缓存服务

高级配置与扩展

环境变量定制

通过修改docker-compose.yml中的environment部分配置服务参数,关键环境变量包括:

  • DB_URL: 数据库连接字符串
  • PORT: 应用服务端口
  • ADMIN_PORT: 管理界面端口

服务扩展

如需增加服务实例或调整资源限制,可添加deploy配置:

services:
  api:
    deploy:
      replicas: 3
      resources:
        limits:
          cpus: '0.5'
          memory: 512M

常见问题处理

服务启动失败

检查依赖服务健康状态,特别是数据库服务需先完成初始化。查看日志获取详细错误信息:

docker-compose logs -f logto

数据备份策略

定期备份命名卷数据,PostgreSQL数据库可使用以下命令导出:

docker-compose exec db pg_dump -U postgres earthworm > backup.sql

监控与维护

通过Docker Compose内置命令进行日常维护:

  • 查看日志:docker-compose logs -f
  • 重启服务:docker-compose restart api
  • 更新镜像:docker-compose pull && docker-compose up -d

部署架构图

Earthworm部署架构

总结与最佳实践

Earthworm的Docker Compose配置实现了开发环境与生产部署的一致性,推荐以下最佳实践:

  1. 使用.env文件管理敏感配置,避免直接修改docker-compose.yml
  2. 定期备份volumes数据防止丢失
  3. 生产环境添加反向代理处理SSL终止
  4. 通过健康检查确保服务依赖顺序

完整部署文档可参考项目文档,更多高级配置选项请查阅官方文档。

部署过程中遇到问题可参考常见问题或提交issue获取支持。

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

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐