1、确认项目结构
your_project_root/
├── compose.yml # Docker Compose 配置文件
├── Dockerfile # 镜像构建文件
├── environment.yml # Conda 环境配置文件
├── app.py # 主程序代码(必须存在,否则容器启动失败!)
└── requirements.txt # Python 依赖列表(必须存在,否则 pip install 会失败!)
1.1 environment.yml 说明
name: 环境名称
#这时指定 conda的源, pip 最后的 -i才是指定pip的源
channels:
- conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
- defaults
dependencies:
- python=3.10
- pip
- pip:
- ragflow-sdk==0.17.2
- toml==0.10.2
- fastapi==0.115.12
- uvicorn==0.34.0
- sse_starlette==2.2.1
- PyJWT==2.10.1
- peewee==3.18.0
- pypdfium2==4.30.1
- PyMuPDF==1.25.5
- python-docx==1.1.2
- python-multipart==0.0.2
- pdfplumber==0.11.6
- aiofiles==24.1.0
# 这里指定的是pip源
- -i https://pypi.tuna.tsinghua.edu.cn/simple
2、构建 Docker 镜像
在包含 Dockerfile 的目录下执行:
# “.” 符号代表当前路径下,不要漏了
docker build -t smart_chat:v4 .
作用:
基于当前路径下的Dockerfile 构建镜像
注意: smart_chat:v4 这里 时名称:版本号, 如果已经存在重复的镜像, 之前的镜像名称和版本号都会被置为<none>
3、通过 Docker Compose 启动容器
docker-compose -f compose.yml up -d
4、验证容器状态
# 检查容器是否正在运行
docker ps
5、 启动失败如何解决
修改compose.yml 文件, 将启动命令改为:
command: bash -c "sleep infinity"
5.1、 检查容器是否启动
docker ps
# 进入容器
docker exec -it 容器名称 bash
如果启动成功,则进入到容器中,手动启动进程, 检查报错内容,并解决, 解决成功后,按照成功的步骤,修改项目代码或者docker相关启动文件
5.2、关闭容器
docker-compose stop 服务名称
5.3、重启容器
docker restart 容器id