| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # 检澜(DockScope)— Docker 堆栈(本文件不含 build,避免中文路径下 compose --build 触发 Bake/gRPC 错误)
- # 一键启动(项目根目录,需已安装 Node):npm install && npm run up
- # 纯命令(PowerShell 一行):$env:DOCKER_BUILDKIT='0'; docker build -f docker/backend/Dockerfile -t bridge-disease-backend:local .; docker build -f docker/frontend/Dockerfile --build-arg VITE_API_BASE_URL=http://127.0.0.1:5000 -t bridge-disease-frontend:local .; docker compose -p bridge-disease up -d
- # 检澜 Web http://localhost:8080 检澜 API http://localhost:5000
- name: bridge-disease
- services:
- db:
- image: mysql:8.0
- container_name: bridge-disease-mysql
- restart: unless-stopped
- command:
- - --character-set-server=utf8mb4
- - --collation-server=utf8mb4_unicode_ci
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-bridgedisease_root}
- MYSQL_DATABASE: ${MYSQL_DATABASE:-bridge_disease}
- volumes:
- - mysql_data:/var/lib/mysql
- ports:
- - "${MYSQL_HOST_PORT:-3307}:3306"
- healthcheck:
- test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD || exit 1"]
- interval: 5s
- timeout: 5s
- retries: 30
- start_period: 30s
- backend:
- image: bridge-disease-backend:local
- container_name: bridge-disease-backend
- restart: unless-stopped
- depends_on:
- db:
- condition: service_healthy
- environment:
- FLASK_RUN_HOST: "0.0.0.0"
- FLASK_RUN_PORT: "5000"
- MYSQL_HOST: db
- MYSQL_PORT: "3306"
- MYSQL_USER: root
- MYSQL_PASSWORD: ${MYSQL_ROOT_PASSWORD:-bridgedisease_root}
- MYSQL_DATABASE: ${MYSQL_DATABASE:-bridge_disease}
- SQLALCHEMY_DATABASE_URI: mysql+pymysql://root:${MYSQL_ROOT_PASSWORD:-bridgedisease_root}@db:3306/${MYSQL_DATABASE:-bridge_disease}?charset=utf8mb4
- ports:
- - "5000:5000"
- frontend:
- image: bridge-disease-frontend:local
- container_name: bridge-disease-frontend
- restart: unless-stopped
- depends_on:
- - backend
- ports:
- - "8080:80"
- volumes:
- mysql_data:
|