Docker Compose
用 Docker 部署一个 PHP + MySQL 网站:Nginx 提供静态和反代、PHP-FPM 执行代码、MySQL 存数据、Redis 做缓存。一条 compose 全搞定。
结构
代码挂载给 php 和 nginx;数据库数据卷持久化;环境变量管密码。这个方案在云服务器上验证一次,以后随便换机器。
代码示例
# docker-compose.yml(PHP 项目)
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./site:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
image: php:8.2-fpm
volumes:
- ./site:/var/www/html
# 装扩展示例:
# build:
# context: .
# dockerfile: Dockerfile
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: codecourse
volumes:
- mysql_data:/var/lib/mysql
ports:
- "3306:3306"
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
mysql_data:
# docker compose up -d 后访问 http://服务器IP