AutoMedinfo/docker-compose.yml

80 lines
1.9 KiB
YAML

version: '3.8'
services:
# MySQL数据库
mysql:
image: mysql:8.0
container_name: medical-info-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123}
MYSQL_DATABASE: medical_info_system
MYSQL_USER: ${MYSQL_USER:-medical_user}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-medical_pass}
TZ: Asia/Shanghai
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./database/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql
- ./database/sample_data.sql:/docker-entrypoint-initdb.d/2-sample_data.sql
command: --default-authentication-plugin=mysql_native_password
networks:
- medical-info-network
# 后端Spring Boot应用
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: medical-info-backend
restart: always
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-prod}
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: medical_info_system
DB_USERNAME: ${MYSQL_USER:-medical_user}
DB_PASSWORD: ${MYSQL_PASSWORD:-medical_pass}
JWT_SECRET: ${JWT_SECRET:-your-secret-key-change-in-production}
DIFY_API_URL: ${DIFY_API_URL:-https://api.dify.ai/v1}
DIFY_API_KEY: ${DIFY_API_KEY}
LLM_API_URL: ${LLM_API_URL:-https://api.openai.com/v1}
LLM_API_KEY: ${LLM_API_KEY}
LLM_MODEL: ${LLM_MODEL:-gpt-4}
ports:
- "8080:8080"
volumes:
- ./downloads:/app/downloads
- ./logs:/app/logs
depends_on:
- mysql
networks:
- medical-info-network
# 前端Vue3应用
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: medical-info-frontend
restart: always
ports:
- "80:80"
depends_on:
- backend
networks:
- medical-info-network
volumes:
mysql-data:
driver: local
networks:
medical-info-network:
driver: bridge