Skip to content

Docker 部署 PHP、MySQL 与前端:从 Compose 到生产边界 ​

文章定位:Docker、Compose、PHP、MySQL、卷、网络和健康检查

Docker 部署 PHP、MySQL 与前端:从 Compose 到生产边界技术图

核心结论 ​

容器解决构建和运行环境一致性,不自动解决安全、备份、监控和高可用。数据库数据需要独立卷和恢复演练,生产 secrets 不能写入镜像。

yaml
services:
  app:
    build: ./docker/app
    env_file: .env
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mysql:8.4
    volumes:
      - db-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
volumes:
  db-data:

版本固定到验证过的镜像,不使用 latest。数据库只加入内部网络,配置通过环境变量或 secrets 注入,日志输出到标准输出并由平台收集。

镜像使用多阶段构建、非 root 用户、最小基础镜像和依赖扫描。数据库卷不是备份,必须定期导出并在隔离环境恢复。

参考资料 ​

1 2

VitePress Vue.js 3.5+ Node.js 24.04 LTS pnpm Nginx Released under the MIT License.