首页
/ 使用Docker Compose部署Profile Views Counter项目指南

使用Docker Compose部署Profile Views Counter项目指南

2025-07-08 07:11:54作者:裘晴惠Vivianne

Profile Views Counter是一个用于统计和展示个人资料访问量的工具。本文将详细介绍如何使用Docker Compose来部署这个项目,帮助开发者快速搭建完整的运行环境。

项目架构概述

该项目的Docker Compose配置定义了一个包含三个主要服务的微服务架构:

  1. 应用服务(APP):基于自定义PHP镜像构建的核心业务逻辑处理服务
  2. 数据库服务(PostgreSQL):用于持久化存储访问数据
  3. Web服务器(Nginx):作为反向代理处理HTTP请求

详细配置解析

1. 应用服务配置

app:
  container_name: ${PROJECT_NAME}-app
  image: ghpvc-app
  build:
    context: ./
    dockerfile: ./.docker/php/Dockerfile
  restart: unless-stopped
  depends_on:
    - postgres
  working_dir: /app
  volumes:
    - ./:/app
    - ./.docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf:ro

关键点说明:

  • 使用自定义构建的PHP镜像,构建上下文为项目根目录
  • 通过depends_on确保数据库服务先启动
  • 采用卷挂载实现代码热更新,开发时修改代码无需重建容器
  • 挂载自定义的PHP-FPM配置文件,优化进程管理

2. Nginx服务配置

nginx:
  container_name: ${PROJECT_NAME}-nginx
  image: nginx:1.21-alpine
  ports:
    - "80:80"
  volumes:
    - ./.docker/nginx/app.ghpvc.80.conf:/etc/nginx/conf.d/app.ghpvc.80.conf:ro
    - ./public:/app/public:ro

关键特性:

  • 使用轻量级的Alpine版Nginx镜像
  • 暴露80端口提供Web访问
  • 挂载自定义Nginx配置文件和静态资源目录
  • 配置为只读(ro)挂载,增强安全性

3. PostgreSQL数据库配置

postgres:
  container_name: ${PROJECT_NAME}-postgres
  image: postgres:13.4-alpine
  environment:
    - POSTGRES_USER=${DB_USER}
    - POSTGRES_PASSWORD=${DB_PASSWORD}
    - POSTGRES_DB=${DB_NAME}
  volumes:
    - ./.docker-volume-postgres:/var/lib/postgresql/data

数据库特点:

  • 同样采用Alpine版镜像减小体积
  • 通过环境变量配置数据库用户、密码和名称
  • 使用本地卷持久化存储数据,避免容器重启数据丢失

网络配置

networks:
  ghpvc:
    driver: bridge

项目创建了一个名为ghpvc的桥接网络,所有服务都加入该网络,实现服务间通信隔离。

部署实践建议

  1. 环境变量准备:创建.env文件定义以下变量:

    PROJECT_NAME=profile_views_counter
    DB_USER=your_db_user
    DB_PASSWORD=your_secure_password
    DB_NAME=profile_views
    DB_PORT=5432
    
  2. 启动命令

    docker-compose up -d
    
  3. 开发模式优化

    • 可添加xdebug配置到PHP服务以支持调试
    • 考虑添加phpmyadmin服务方便数据库管理
  4. 生产环境调整

    • 替换自签名证书为正式SSL证书
    • 配置Nginx的访问日志和错误日志
    • 设置适当的资源限制(CPU/内存)

常见问题解决

  1. 端口冲突:如果80或5432端口被占用,修改.env中的端口配置
  2. 权限问题:确保Docker有权限访问项目目录
  3. 构建失败:检查Dockerfile是否存在且路径正确

通过这套Docker Compose配置,开发者可以快速搭建Profile Views Counter的完整运行环境,无论是用于开发测试还是生产部署都非常方便。