241115-RHEL如何进入RagFlow-Docker环境并修改Docker环境内的Python代码

A. 背景描述

  • 在断网环境下配置RagFlow遇到了下面的问题
requests.exceptions.SSLError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)')))
  • 找到了解决方法:
    Issues · infiniflow/ragflow

  • 需求修改Docker镜像内的Python代码,而非Github的源码

B. 具体操作

  • 方式1: 通过命令行修改
    在这里插入图片描述
  • 方式2: VSCode-Docker插件修改

在这里插入图片描述

C. 通用操作

在 RHEL 系统上,进入 Docker 环境并修改 Docker 容器内的 Python 代码,可以按以下步骤操作:

1. 列出运行中的 Docker 容器

首先,使用以下命令列出当前正在运行的 Docker 容器:

docker ps

这会显示容器的 ID 和名称,找出你想进入的容器的 ID 或名称。

2. 进入 Docker 容器

使用 docker exec 命令进入容器的 shell。假设容器的名称是 my_container,可以使用以下命令进入容器:

docker exec -it my_container /bin/bash

或者,如果容器使用的是 sh 而非 bash,可以使用:

docker exec -it my_container /bin/sh

3. 定位到 Python 代码所在目录

进入容器后,使用 cd 命令导航到存放 Python 代码的目录。例如,如果代码位于 /app 目录:

cd /app

4. 修改 Python 代码

可以使用容器内的编辑器(例如 vinano,如果安装了的话)修改代码。如果没有安装编辑器,可以使用以下命令安装 nano

apt-get update
apt-get install nano

然后使用 nano 编辑代码:

nano your_script.py

5. 保存并退出

完成编辑后,保存文件并退出编辑器。对于 nano,按 Ctrl + X,然后按 Y 保存修改并退出。

6. 退出容器

修改完成后,可以使用以下命令退出容器:

exit

7. 重新启动容器

如果需要,可以通过以下命令重新启动容器,使修改生效:

docker restart my_container

其他方法:

如果你希望在本地编辑代码并将其同步到容器中,可以通过挂载本地目录来运行容器:

docker run -v /path/to/local/code:/path/to/container/code -it my_container /bin/bash

这将会把本地目录 /path/to/local/code 挂载到容器内的 /path/to/container/code 目录,使你可以直接在本地修改代码,容器内的代码会自动更新。

希望这些步骤能帮助你在 Docker 容器内编辑和修改 Python 代码!如果有其他问题,随时告诉我!