42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
services:
|
||||
|
|
# ================= 后端:FastAPI + SQLAlchemy =================
|
|||
|
|
# 构建上下文是后端代码根目录(本文件在 vue/ 下,../.. 即 sqlalchemy_fastapi_demo_1)
|
|||
|
|
fastapi:
|
|||
|
|
build:
|
|||
|
|
context: ../..
|
|||
|
|
dockerfile: Dockerfile
|
|||
|
|
image: student-system-api:1.0
|
|||
|
|
container_name: fastapi-backend
|
|||
|
|
ports:
|
|||
|
|
- "8004:8004"
|
|||
|
|
environment:
|
|||
|
|
APP_HOST: 0.0.0.0
|
|||
|
|
APP_PORT: 8004
|
|||
|
|
APP_RELOAD: "false"
|
|||
|
|
# MySQL 跑在宿主机上:容器里的 localhost 指容器自己,必须用 host.docker.internal
|
|||
|
|
MYSQL_HOST: host.docker.internal
|
|||
|
|
MYSQL_PORT: 3306
|
|||
|
|
MYSQL_USER: root
|
|||
|
|
MYSQL_PASSWORD: "123456"
|
|||
|
|
MYSQL_NAME: 0914tw
|
|||
|
|
extra_hosts:
|
|||
|
|
- "host.docker.internal:host-gateway" # Linux 需要这行,Win/Mac Docker Desktop 自带
|
|||
|
|
restart: unless-stopped
|
|||
|
|
|
|||
|
|
# ================= 前端:Vue + Nginx =================
|
|||
|
|
vue-frontend:
|
|||
|
|
build:
|
|||
|
|
context: .
|
|||
|
|
dockerfile: Dockerfile
|
|||
|
|
image: student-system-vue:1.0
|
|||
|
|
container_name: vue-frontend
|
|||
|
|
ports:
|
|||
|
|
- "8080:80" # 浏览器访问 http://localhost:8080
|
|||
|
|
environment:
|
|||
|
|
# 填服务名,走 compose 内部网络;若后端在宿主机上直接跑,改成 host.docker.internal
|
|||
|
|
BACKEND_HOST: fastapi
|
|||
|
|
BACKEND_PORT: 8004
|
|||
|
|
depends_on:
|
|||
|
|
- fastapi
|
|||
|
|
restart: unless-stopped
|