【问题标题】:install requirements.txt in docker - network problem在 docker 中安装 requirements.txt - 网络问题
【发布时间】:2020-12-18 11:28:27
【问题描述】:

我正在尝试部署我在 docker 容器中编写的程序。

我写了docker-compose

version: "2.2"

services:
   web:
     build:
       context: .
       dockerfile: ./Dockerfile
       network: host
     image: myimgname
     container_name: proj_name_container
     volumes:
       - /srv/python/proj_name/trained_model:/tmp/proj_name/trained_model
     ports:
       - "8010:8010"
     environment:
       - PYTHONUNBUFFERED=1

我有一个像这样的 Dockerfile:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.6

RUN mkdir /tmp/proj_name
ENV SEGPKG=/tmp/proj_name
COPY . $SEGPKG
WORKDIR /
RUN pip install --upgrade pip --proxy https://myproxy:port --trusted-host pypi.python.org

RUN  pip install -r /tmp/proj_name/requirements.txt --proxy https://myproxy:port --trusted-host pypi.python.org

EXPOSE 8010

基于此pip unable to install packages inside docker container on mac,我添加了 --proxy 选项。

奇怪的事情是它适用于第一个pip install --upgrade pip,但它不适用于使用我的自定义requirements.txt 进行的第二个 pip 安装。 我收到此错误:

警告:重试(重试(总计 = 4,连接 = 无,读取 = 无, redirect=None, status=None)) 连接中断后 'SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] 错误版本 number (_ssl.c:852)'),)': /simple/aiocontextvars/

重试 4 次后:

找不到满足要求的版本 aiocontextvars==0.2.2

我的requirements.txt

aiocontextvars==0.2.2
certifi==2020.11.8
chardet==3.0.4
click==7.1.2
colorama==0.4.4
contextvars==2.4
dataclasses==0.8
fastapi==0.61.2
h11==0.9.0
idna==2.8
immutables==0.14
Jinja2==2.11.2
joblib==0.17.0
loguru==0.5.3
MarkupSafe==1.1.1
pydantic==1.7.2
python-dateutil==2.8.1
requests==2.25.0
six==1.15.0
starlette==0.13.6
typing-extensions==3.7.4.3
urllib3==1.25.11
uvicorn==0.12.3
vertica-python==1.0.0
websockets==8.1
win32-setctime==1.0.3

我在linux服务器上,centos 7。

【问题讨论】:

  • 第一个有https:/myproxy:port,第二个有https://myproxy:port。我实际上希望前者会失败,而后者会起作用。但你可能真的有其他价值观。
  • 在这里写我的问题时只是一个错字。
  • 但这部分可能已经损坏了,所以您的拼写错误不仅让我们感到困惑,而且还掩盖了实际问题。
  • 我更新了我的问题,我向您保证,这只是在此处复制代码时出现的错误。我在我的服务器上检查了我的代码,并且 --proxy 选项都有 https://

标签: python docker


【解决方案1】:

通过指定http 而不是https 解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2015-08-05
    • 2019-04-08
    • 2023-01-19
    • 2021-08-20
    • 2021-08-06
    相关资源
    最近更新 更多