Face_reg_app/docker-compose.yml

68 lines
1.7 KiB
YAML

version: '3.8'
services:
# 1. MySQL 数据库
mysql:
image: mysql:8.0
container_name: face-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: face_db
MYSQL_TZ: Asia/Shanghai
ports:
- "13307:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./backend-java/src/main/resources/db/schema.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- face-net
# 2. 算法服务 (Python)
face-algorithm:
build:
context: ./FaceFeatureExtractorAPI
dockerfile: Dockerfile
container_name: face-algorithm
restart: always
ports:
- "18000:8000"
volumes:
- ./FaceFeatureExtractorAPI/models:/app/models
- ./FaceFeatureExtractorAPI/checkpoints:/app/checkpoints
networks:
- face-net
# 3. 后端服务 (Java)
face-backend:
build:
context: ./backend-java
dockerfile: Dockerfile
container_name: face-backend
restart: always
depends_on:
- mysql
- face-algorithm
ports:
- "18080:8080"
environment:
# 覆盖 application.yml 配置
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/face_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: root
# 配置文件上传路径 (覆盖代码中的 Windows 路径)
SPRING_SERVLET_MULTIPART_LOCATION: /app/uploads
# 算法服务地址 (使用服务名)
FACE_EXTRACTOR_API_URL: http://face-algorithm:8000
volumes:
- ./backend-java/uploads:/app/uploads
networks:
- face-net
volumes:
mysql-data:
networks:
face-net:
driver: bridge