测试代码编辑
测试下帖子中添加代码效果version: '3.8'# Compose 文件版本(建议使用 3.8,兼容性好)
# 定义所有服务
services:
# 1. Nginx 服务
nginx:
image: nginx:alpine# 使用轻量的 alpine 版本 Nginx
ports:
- "8080:80"# 宿主机 8080 端口映射到容器 80 端口
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf# 挂载自定义 Nginx 配置
- ./www:/var/www/html# 挂载项目代码到容器
depends_on:
- php# 依赖 php 服务,启动顺序:先启动 php 再启动 nginx
networks:
- app-network# 加入自定义网络
# 2. PHP 服务(fpm 模式,配合 Nginx)
php:
build: ./php# 从本地 php 目录的 Dockerfile 构建镜像
volumes:
- ./www:/var/www/html# 共享项目代码
depends_on:
- mysql# 依赖 mysql 服务
networks:
- app-network
environment:
- MYSQL_HOST=mysql# 数据库主机名(对应 mysql 服务名)
- MYSQL_USER=root
- MYSQL_PASSWORD=123456
- MYSQL_DATABASE=test_db
# 3. MySQL 服务
mysql:
image: mysql:8.0
ports:
- "3306:3306"# 宿主机 3306 端口映射到容器
volumes:
- mysql-data:/var/lib/mysql# 持久化数据库数据(命名卷)
environment:
- MYSQL_ROOT_PASSWORD=123456# root 密码
- MYSQL_DATABASE=test_db # 自动创建的数据库名
networks:
- app-network
restart: always# 容器异常退出时自动重启
# 定义网络(自定义桥接网络,避免端口冲突)
networks:
app-network:
driver: bridge
# 定义数据卷(持久化数据,容器删除后数据不丢失)
volumes:
mysql-data:
页:
[1]