# 应用服务 services: # 数据库服务 mysql: container_name: mysql image: mysql:8.0 restart: always environment: - MYSQL_ROOT_PASSWORD=123456 - TZ=Asia/Shanghai ports: - "3306:3306" volumes: - /home/mysql/data:/var/lib/mysql - /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro(read only),表示只读。 networks: - mysql_network # redis服务 redis: container_name: redis image: redis:6 restart: always ports: - "6379:6379" volumes: - /home/redis/redis.conf:/etc/redis/redis.conf - /home/redis/data:/data command: redis-server /etc/redis/redis.conf networks: - redis_network # 后端服务 backend: # 容器名称 container_name: backend # 构建镜像 build: context: . dockerfile: Dockerfile.backend # 端口映射 ports: - "8001:8001" volumes: - /home/backend/static:/home/backend/static - /home/backend/logs:/home/backend/logs - /home/backend/env:/home/backend/env - /etc/localtime:/etc/localtime:ro networks: - backend-network restart: always depends_on: - mysql - redis # 前端服务nginx服务 frontend: container_name: nginx image: "nginx:latest" restart: always build: context: . dockerfile: Dockerfile.frontend ports: - "80:80" volumes: - /home/frontend/nginx/conf:/etc/nginx/conf - /home/frontend/nginx/dist:/usr/share/nginx/html networks: - frontend_network depends_on: - backend # 网络 networks: mysql_network: driver: bridge name: mysql_network redis_network: driver: bridge name: redis_network frontend_network: driver: bridge name: frontend_network backend-network: driver: bridge name: backend-network # 文件挂载 volumes: mysql_data: redis_data: mongodb_data: