Docker构建时pip安装pytorch-lightning失败求助
问题:Docker构建时pip安装依赖失败,找不到指定版本的pytorch-lightning
构建Docker镜像时,执行RUN pip install -r requirements_inference.txt步骤失败,错误提示无法找到符合要求的pytorch-lightning==1.2.10版本,但本地conda环境中执行相同的pip安装操作可成功完成。
补充信息
- 曾怀疑问题与WiFi有关,但本地conda可正常安装,对此存疑
- Dockerfile使用的基础镜像为
huggingface/transformers-pytorch-cpu:latest,requirements_inference.txt包含pytorch-lightning==1.2.10等依赖 - 完整构建日志显示存在多次DNS解析失败警告(
Temporary failure in name resolution),最终导致安装失败 - 执行的构建命令:
docker build -t inference:latest .
解决方法
1. 修复Docker的DNS配置
DNS解析失败是核心诱因,可通过配置公共DNS服务器解决:
- 编辑Docker守护进程配置文件
/etc/docker/daemon.json(若不存在则创建),添加如下内容:{ "dns": ["8.8.8.8", "114.114.114.114"] } - 重启Docker服务:
sudo systemctl restart docker,之后重新执行构建命令
2. 在Dockerfile中指定国内pip镜像源
直接在pip安装命令中添加国内镜像源,绕开DNS问题同时加速下载:
RUN pip install -r requirements_inference.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3. 验证基础镜像的网络连通性
先确认容器内网络是否正常:
- 运行基础镜像进入交互式终端:
docker run -it huggingface/transformers-pytorch-cpu:latest /bin/bash - 在容器内执行
ping pypi.org或nslookup pypi.org,检查网络和DNS解析是否正常。若仍无法解析,说明基础镜像本身网络配置有问题,可尝试更换基础镜像。
4. 离线安装依赖包
如果网络问题无法快速解决,可采用离线安装方式:
- 本地执行命令下载所有依赖包到
./packages目录:pip download -r requirements_inference.txt -d ./packages - 修改Dockerfile,先复制本地依赖包到容器,再执行离线安装:
COPY ./packages /packages RUN pip install --no-index --find-links=/packages -r requirements_inference.txt
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

