加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

python-3.x – 为什么docker寻找/简单的python包?

发布时间:2020-12-16 03:31:58 所属栏目:安全 来源:网络整理
导读:我一直试图让django通过uwsgi在docker容器中运行. 我已经在Docker中运行了django,内置了Web服务器,但现在我修改了包含uwsgi的require.txt,我收到以下错误消息: Retrying (Retry(total=4,connect=None,read=None,redirect=None)) after connection broken by

我一直试图让django通过uwsgi在docker容器中运行.

我已经在Docker中运行了django,内置了Web服务器,但现在我修改了包含uwsgi的require.txt,我收到以下错误消息:

Retrying (Retry(total=4,connect=None,read=None,redirect=None)) after connection broken by ‘NewConnectionError(‘: Failed to establish a new connection: [Errno -2] Name or service not known’,)’: /simple/uwsgi/

所以看起来像url docker是用于pip包是/简单的,但是怎么改变?当我第一次创建容器django和psycopg被下载的罚款.

我尝试指定了uwsgi包的完整URL,但是也没有.

泊坞窗,compose.yaml:

version: '3'
services:
  db:
    image: postgres
  web:
    dns: 8.8.8.8
    build: .
    command: uwsgi --http :8000 --module destExp.wsgi
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

Dockerfile:

FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
CMD uwsgi --http :8000 --module destExp.wsgi
最佳答案
那个错误是由于pip无法到达镜像主机. part / simple / uwsgi被用作pip url路径.

如果您正在部署到Swarm,那么Compose中的DNS行将被忽略,如doc所述.这是一个解决方法,可以让pip短暂地使用不同的DNS,只需将Dockerfile中的pip行更新为:

RUN echo nameserver 8.8.8.8 > /etc/resolv.conf && pip install -r requirements.txt

希望有帮助.作为永久解决方案,您应该调查如何使您的业务流程使用自定义DNS或从您的案例的容器中排除当前DNS.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读