收藏
回答

云托管部署fastapi服务失败,pip 安装报错?

FROM tiangolo/uvicorn-gunicorn:python3.11


COPY . /app


# 设定当前的工作目录

WORKDIR /app

# 安装依赖到指定的/install文件夹

# 选用国内镜像源以提高下载速度

RUN pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple \

&& pip config set global.trusted-host mirrors.cloud.tencent.com \

&& pip install --upgrade pip \

# pip install scipy 等数学包失败,可使用 apk add py3-scipy 进行, 参考安装 https://pkgs.alpinelinux.org/packages?name=py3-scipy&branch=v3.13

&& pip install --user -r requirements.txt


# 暴露端口。

# 此处端口必须与「服务设置」-「流水线」以及「手动上传代码包」部署时填写的端口一致,否则会部署失败。

EXPOSE 80

如上是我的dockfile配置,东抄西抄,我也是服了,就没个正经的教程。

然后运行到pip install 就报错了。

[2023-06-25 12:37:53]   Downloading http://mirrors.cloud.tencent.com/pypi/packages/04/af/1749185fe149662b1f0af3bea74ab0620294752366306cd6098fdb52eafa/fastapi-0.97.0-py3-none-any.whl (56 kB)

[2023-06-25 12:37:53] ERROR: Exception:
[2023-06-25 12:37:53] Traceback (most recent call last):
[2023-06-25 12:37:53]   File "/usr/local/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 169, in exc_logging_wrapper
。。。。
[2023-06-25 12:37:53]   File "/usr/local/lib/python3.11/threading.py", line 957, in start
[2023-06-25 12:37:53]     _start_new_thread(self._bootstrap, ())
[2023-06-25 12:37:53] RuntimeError: can't start new thread
[2023-06-25 12:37:54] The command '/bin/sh -c pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple && pip config set global.trusted-host mirrors.cloud.tencent.com && pip install --upgrade pip && pip install --user -r requirements.txt' returned a non-zero code: 2


救救孩子吧,我都快疯了

回答关注问题邀请回答
收藏

3 个回答

  • 国涛
    国涛
    04-17

    折腾了好几天的云部署,遇到部署失败非常磨人,部署日志只显示80端口连接超时,而系统日志由于是启动失败往往没有,导致非常难定位问题,而首次部署,往往环境依赖很难一次性搞定,所以这个体验尤其糟糕。

    折腾两天的经验是,本地先docker运行正常,排除大部分问题。云上问题可以先启动一个基础服务,非常简单的,然后登录到实例,启动自己的服务,逐步定位问题。

    04-17
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2023-06-25

    不用云托管,在docker里面也报错哦

    2023-06-25
    有用
    回复 14
    • Wesin
      Wesin
      2023-06-25
      ~,~公司电脑搞不了这个,我回去给个本地docker运行成功的版本
      2023-06-25
      回复
    • Wesin
      Wesin
      2023-06-25
      我很确定 RUN pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple \
      && pip config set global.trusted-host mirrors.cloud.tencent.com \
      && pip install --upgrade pip \ 删除这段我在本机docker是完全可以跑的。 这段是我看那个flask模板有这个我加上去试试的
      2023-06-25
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-06-25回复Wesin
      删除能跑  那为啥要加上呢
      2023-06-25
      回复
    • Wesin
      Wesin
      2023-06-25回复Mr.Zhao
      我刚验证了一把,,这个dockerfile在微信cloudbase里面跑的一点问题没有。不知道为什么你的会报错
      2023-06-25
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-06-25回复Wesin
      returned a non-zero code: 2  就报这个错误啊
      2023-06-25
      回复
    查看更多(9)
  • Ding
    Ding
    2023-06-25

    你的 requirements 里有什么依赖

    2023-06-25
    有用
    回复 12
    • Wesin
      Wesin
      2023-06-25
      fastapi==0.97.0
      PyMySQL==1.0.3
      python-multipart==0.0.6
      requests==2.31.0
      SQLAlchemy==2.0.16
      uvicorn==0.22.0


      就这么点东西,感觉挺正常的呀
      2023-06-25
      回复
    • Ding
      Ding
      2023-06-25回复Wesin
      我这里跑起来正常的。你可以多尝试几次
      2023-06-25
      回复
    • Wesin
      Wesin
      2023-06-25回复Ding
      我跑了N次了
      2023-06-25
      回复
    • Ding
      Ding
      2023-06-26回复Wesin
      删掉重建一个服务再部署呢
      2023-06-26
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-06-26回复Ding
      我用云服务器也报错
      2023-06-26
      回复
    查看更多(7)
登录 后发表内容