python - 通过 docker-compose 运行 'pip install' 时出现 ConnectTimeoutError

标签 python docker docker-compose pip

我是 docker 的新手,目前正在尝试为我的 Django 项目构建图像。这是我的 Dockerfile:

FROM python:3.8.5-alpine
WORKDIR /my_project

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt

COPY . .

当我运行 docker-compose build 时,执行在第二个 pip 命令处中断并出现以下错误;

WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f2b21bd1610>, 'Connection to pypi.org timed out. (connect timeout=15)')': /simple/asgiref/

一些上下文:

操作系统:Ubuntu 20.04.1 LTS 内核:Linux 5.8.0-34-generic

docker --version Docker 版本 20.10.2,构建 2291f61

docker-compose --version docker-compose 版本 1.27.4,构建 40524192

我在网上查了很多类似的问题,但没有一个对应的解决方案对我有用。我非常乐意与您分享有助于解决问题所需的任何其他信息。

最佳答案

听起来在构建 docker 容器时网络连接存在一些问题。 使用 Host 作为 compose 文件中的网络来解决问题。

version: '3.4'
services:
  django_image:
    build:
      context: .
      network: host

试一试,它会解决问题。

关于python - 通过 docker-compose 运行 'pip install' 时出现 ConnectTimeoutError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65642356/

相关文章:

mysql - 使用主机网络以不同端口运行多个 mysql 容器

python删除C函数体

python - 如何改进小文本的分类

python - 如何在笛卡尔坐标中使用 RANSAC 拟合一条线?

python - 有没有办法在 Firestore 中保存数据后获得响应?

docker - Visual Studio Team Service 失败任务 Docker 构建

git - 尝试运行 "not a git repository"时获取 "az acr build"

docker - docker 中的composer-playground无法连接到hlf v1

python - STORAGE [main] In File::open(),::open for '/docker-entrypoint-initdb.d/create_user.js' 失败,权限被拒绝

linux - 在 Debian 11 上安装 Docker Desktop 后 docker-compose 停止工作