首页
/ Nginx Proxy Manager 开发环境 Docker Compose 配置解析

Nginx Proxy Manager 开发环境 Docker Compose 配置解析

2025-07-05 05:07:08作者:余洋婵Anita

开发环境与生产环境的区别

在开始分析这个 Docker Compose 配置文件之前,需要特别强调:这是一个专门为开发环境设计的配置,文件顶部明确标注了"WARNING: This is a DEVELOPMENT docker-compose file, it should not be used for production."。开发环境配置与生产环境有几个关键区别:

  1. 使用了开发专用的 Docker 镜像 (nginxproxymanager:dev)
  2. 启用了调试模式 (DEBUG: 'true')
  3. 使用了 Let's Encrypt 的测试环境 (LE_STAGING: 'true')
  4. 映射了本地源代码目录到容器中,便于实时开发调试

核心服务配置分析

npm (Nginx Proxy Manager 核心服务)

这个服务是 Nginx Proxy Manager 的核心组件,配置要点包括:

  1. 端口映射

    • 80 → 3080 (HTTP)
    • 81 → 3081 (管理界面)
    • 443 → 3443 (HTTPS) 这种非标准端口映射是为了避免与本地可能运行的其他服务冲突。
  2. 环境变量

    • PUID/PGID:设置运行权限
    • FORCE_COLOR:强制彩色日志输出
    • 数据库连接信息:指向名为 db 的 MySQL 服务
    • 开发专用标志:DEBUGDEVELOPMENT
  3. 卷挂载

    • 数据持久化:npm_datale_data
    • 源代码映射:将本地 backendfrontendglobal 目录映射到容器中,实现代码实时更新

db (数据库服务)

数据库服务使用了专门优化的 jc21/mariadb-aria 镜像,配置特点:

  1. 端口 3306 映射到主机的 33306,便于开发调试时直接连接
  2. 设置了 root 用户和应用用户相同的密码(开发环境简化配置)
  3. 数据持久化到 db_data

网络与数据持久化

  1. 网络配置

    • 创建了名为 npm_network 的专用网络
    • 所有服务都加入该网络,便于服务间通信
  2. 卷配置

    • 三个命名卷分别用于核心数据、Let's Encrypt 证书和数据库数据
    • 使用 name 属性显式命名,便于管理

开发环境特有功能

  1. 源代码热加载

    • 通过将本地源代码目录映射到容器中,开发者可以实时修改代码而无需重建镜像
  2. 调试支持

    • DEBUG: 'true' 启用详细日志输出
    • FORCE_COLOR: 1 使日志更易读
  3. 安全证书测试

    • LE_STAGING: 'true' 使用 Let's Encrypt 的测试环境,避免生产环境请求限制

使用建议

对于想要参与 Nginx Proxy Manager 开发的用户,这个 Docker Compose 文件提供了完整的开发环境配置。使用时需要注意:

  1. 确保本地有完整的代码仓库,因为配置中映射了多个源代码目录
  2. 开发完成后,应使用专门的构建流程生成生产环境镜像
  3. 数据库密码等敏感信息在开发环境中使用了简化配置,生产环境必须修改

这个配置充分考虑了开发便利性,是参与 Nginx Proxy Manager 项目开发的理想起点。