首页
/ PushDeer项目Docker Compose部署指南

PushDeer项目Docker Compose部署指南

2025-07-08 04:59:50作者:农烁颖Land

概述

PushDeer是一个消息推送服务项目,本文主要介绍如何使用Docker Compose快速部署PushDeer服务。通过Docker容器化技术,我们可以轻松搭建包含数据库、缓存和应用服务的完整推送系统环境。

部署架构分析

从提供的docker-compose.yml文件可以看出,PushDeer采用典型的三层架构:

  1. 数据库层:使用MariaDB 10.5.8作为关系型数据库
  2. 缓存层:使用Redis 6.0.16作为缓存服务
  3. 应用层:基于PHP 8.0的Web应用服务

详细配置解析

1. MariaDB服务配置

mariadb:
  image: 'mariadb:10.5.8-focal'
  healthcheck:
    test: ["CMD", "mysqladmin", "ping", "--silent","--password=$$MYSQL_ROOT_PASSWORD"]
    timeout: 10s
    retries: 3
  volumes:
    - 'mariadb_data:/var/lib/mysql'
  environment:
    - MYSQL_ROOT_PASSWORD=theVeryp@ssw0rd
    - MYSQL_DATABASE=pushdeer
  ports:
    - '3306:3306'

关键点说明:

  • 使用MariaDB 10.5.8官方镜像,基于Ubuntu Focal基础镜像
  • 配置了健康检查,确保数据库服务可用后才启动依赖服务
  • 使用数据卷持久化存储数据库文件
  • 默认创建了名为"pushdeer"的数据库
  • 暴露3306端口供外部访问(生产环境应考虑安全限制)

2. Redis服务配置

redis: 
  image: 'bitnami/redis:6.0.16'
  healthcheck:
    test: ["CMD", "redis-cli","ping"]
  environment:
    - ALLOW_EMPTY_PASSWORD=yes

关键点说明:

  • 使用Bitnami提供的Redis 6.0.16镜像
  • 配置了简单的ping健康检查
  • 允许空密码访问(生产环境应设置密码)

3. 应用服务配置

app:
  build: './docker/web/'
  ports:
    - '8800:80'
  volumes:
    - './:/app'
  depends_on:
    mariadb:
      condition: service_healthy
    redis:
      condition: service_healthy
  environment:
    - DB_HOST=mariadb
    - DB_PORT=3306
    - DB_USERNAME=root
    - DB_DATABASE=pushdeer
    - DB_PASSWORD=theVeryp@ssw0rd

关键点说明:

  • 使用自定义构建的Docker镜像(基于webdevops/php-apache:8.0-alpine)
  • 将容器80端口映射到宿主机8800端口
  • 使用bind mount将当前目录挂载到容器/app目录
  • 依赖数据库和Redis服务,且等待它们健康后才启动
  • 通过环境变量配置数据库连接信息

部署步骤指南

  1. 准备环境

    • 确保已安装Docker和Docker Compose
    • 克隆PushDeer项目代码到本地
  2. 修改配置(可选):

    • 建议修改默认数据库密码
    • 如需外部访问Redis,应设置密码
  3. 启动服务

    docker-compose up -d
    
  4. 验证服务

    • 访问http://localhost:8800 查看应用是否正常运行
    • 检查各容器日志确认无报错
  5. 停止服务

    docker-compose down
    

安全建议

  1. 数据库安全

    • 修改默认root密码
    • 生产环境应限制3306端口外部访问
    • 考虑创建专用应用用户而非使用root
  2. Redis安全

    • 设置访问密码
    • 考虑启用TLS加密
  3. 应用安全

    • 定期更新基础镜像获取安全补丁
    • 考虑添加Web应用防火墙

性能优化建议

  1. 资源限制

    • 为各服务配置适当的CPU和内存限制
  2. 数据库优化

    • 根据负载调整MariaDB配置参数
    • 考虑添加查询缓存
  3. Redis优化

    • 根据使用模式调整内存淘汰策略
    • 监控内存使用情况

常见问题排查

  1. 服务启动失败

    • 检查docker-compose logs输出
    • 确认端口未被占用
  2. 数据库连接问题

    • 验证数据库服务是否健康
    • 检查连接字符串配置
  3. 应用报错

    • 检查挂载的代码目录权限
    • 确认依赖服务已正常启动

通过以上Docker Compose配置,PushDeer项目可以快速搭建起完整的开发或测试环境。生产环境部署时,建议根据实际需求进一步调整安全性和性能相关配置。