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

PrestaShop项目Docker Compose部署指南

2025-07-07 01:13:27作者:贡沫苏Truman

概述

PrestaShop是一款流行的开源电子商务解决方案,使用Docker Compose可以快速搭建开发或测试环境。本文将详细解析PrestaShop项目中的docker-compose.yml文件配置,帮助开发者理解其架构和部署原理。

核心服务架构

PrestaShop的Docker Compose配置主要包含三个核心服务:

  1. MySQL数据库服务:存储PrestaShop的所有数据
  2. PrestaShop主服务:运行电子商务平台本身
  3. MailDev邮件服务:用于开发和测试环境中的邮件测试

数据库服务配置详解

MySQL服务配置体现了生产级数据库部署的最佳实践:

mysql:
  image: mysql:8
  ports:
    - "3306:3306"
  volumes:
    - db-data:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: ${DB_PASSWD:-prestashop}
    MYSQL_DATABASE: ${DB_NAME:-prestashop}
  restart: unless-stopped

关键点分析:

  • 使用MySQL 8官方镜像,确保数据库兼容性
  • 数据持久化通过命名卷db-data实现,防止容器重启数据丢失
  • 环境变量提供灵活的密码和数据库名配置,默认值为prestashop
  • unless-stopped重启策略确保服务异常退出时自动恢复

PrestaShop主服务配置

PrestaShop服务配置最为复杂,体现了对开发环境的全面支持:

prestashop-git:
  build:
    dockerfile: .docker/Dockerfile
    context: .
    args:
      - VERSION=${VERSION:-8.1-apache}
      - USER_ID=${USER_ID:-1000}
      - GROUP_ID=${GROUP_ID:-1000}

构建配置特点:

  • 使用自定义Dockerfile构建,而非直接使用镜像
  • 支持多版本PHP(默认8.1-apache)
  • 考虑Linux用户权限问题,可配置用户ID和组ID

环境变量配置

环境变量部分提供了丰富的自定义选项:

environment:
  PS_INSTALL_AUTO: ${PS_INSTALL_AUTO:-1}
  DB_SERVER: ${DB_SERVER:-mysql}
  PS_DOMAIN: ${PS_DOMAIN:-localhost:8001}
  PS_DEV_MODE: ${PS_DEV_MODE:-1}

主要配置项:

  • PS_INSTALL_AUTO:控制是否自动安装(默认开启)
  • PS_DEV_MODE:开发模式开关(默认开启)
  • 数据库连接配置(默认指向mysql服务)
  • 多语言支持(默认英语)
  • 管理员账户配置

网络与依赖配置

ports:
  - "8001:80"
  - "8002:443"
depends_on:
  - mysql
networks:
  - prestashop-network

网络特性:

  • 映射80和443端口到主机8001和8002
  • 显式声明依赖MySQL服务
  • 使用自定义网络确保服务间通信

邮件服务配置

MailDev服务为开发提供邮件测试功能:

maildev:
  image: 'maildev/maildev'
  ports:
    - "1080:1080"  # Web界面
    - "1025:1025"  # SMTP端口

功能特点:

  • 提供Web界面查看发送的邮件(访问1080端口)
  • 测试SMTP服务器接收邮件(1025端口)
  • 与PrestaShop服务在同一网络,可直接通信

网络配置

networks:
  prestashop-network:
    name: prestashop-network

网络设计:

  • 创建名为prestashop-network的自定义网络
  • 所有服务加入同一网络,确保服务间可直接通过服务名通信
  • 隔离主机网络,提高安全性

部署与使用建议

  1. 环境准备:确保主机已安装Docker和Docker Compose
  2. 配置文件:可根据需要修改.env文件覆盖默认配置
  3. 启动命令:执行docker-compose up -d启动所有服务
  4. 访问方式
    • PrestaShop前台:http://localhost:8001
    • 后台管理:http://localhost:8001/admin-dev
    • 邮件界面:http://localhost:1080

开发模式特色

此配置特别适合PrestaShop二次开发:

  • 源代码通过卷映射直接挂载,修改即时生效
  • 开发模式默认开启,显示详细错误信息
  • XDebug支持可选安装,方便调试
  • 使用wait-for-it脚本确保数据库就绪后再启动

总结

PrestaShop的Docker Compose配置提供了开箱即用的开发环境,通过合理的服务拆分、网络隔离和环境变量配置,既满足了开发需求,又保持了生产环境的相似性。理解这份配置有助于开发者快速搭建环境,也为自定义部署提供了良好基础。