确保已经安装:
- Docker Engine (或 Docker Desktop)
- Docker Compose
确保项目文件结构如下所示:
project_root/
├── docker-compose.yml
├── backend/
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── app/
│ │ └── main.py
│ └── ... (其他后端代码)
├── frontend/
│ ├── Dockerfile
│ ├── package.json
│ ├── nginx.conf
│ └── ... (其他前端代码)
└── db/
└── init.sql
修改 docker-compose.yml 中的环境变量配置:
- API 密钥配置:
backend服务中有两个为空的 API Key,请填入真实 Key:
SILICONFLOW_API_KEY: "硅基流动API_KEY"
AMAP_KEY: "地图API_KEY"
- 安全配置:
SECRET_KEY: 目前设置为默认值,生产环境建议修改为随机的安全字符串。MYSQL_ROOT_PASSWORD: 数据库密码默认为example_pass,如需修改,请同时修改db服务的环境变量和backend服务的DATABASE_URL。
在包含 docker-compose.yml 的根目录下打开终端,执行以下命令:
构建并启动容器:
docker-compose up --build -d
启动完成后,可以通过以下地址访问各服务:
-
服务器上访问:
-
地址:
http://localhost(或http://127.0.0.1) -
说明: 这是用户访问的主入口。
-
同一局域网其他设备访问:
-
地址:
http://<服务器ip>:80
- 查看运行状态:
docker-compose ps
- 查看日志 (用于排查错误):
docker-compose logs -f
# 或者查看特定服务日志
docker-compose logs -f backend
- 停止服务:
docker-compose down
- 停止并删除数据卷 (注意:这将清空数据库数据):
docker-compose down -v
-
数据持久化:
-
数据库数据存储在 Docker 卷
db_data中,重启容器不会丢失数据。 -
上传的图片文件存储在
./backend/static挂载卷中,确保宿主机该目录有写入权限。 -
端口冲突:
-
如果您的电脑上 80、8000 或 3307 端口已被占用,请在
docker-compose.yml的ports部分修改左侧的端口号(例如"8080:80")。 -
构建依赖:
-
后端使用了阿里云镜像源加速 apt 和 pip 安装,前端构建依赖 Node.js 和 npm。请确保构建时的网络环境正常。