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
救救孩子吧,我都快疯了
折腾了好几天的云部署,遇到部署失败非常磨人,部署日志只显示80端口连接超时,而系统日志由于是启动失败往往没有,导致非常难定位问题,而首次部署,往往环境依赖很难一次性搞定,所以这个体验尤其糟糕。
折腾两天的经验是,本地先docker运行正常,排除大部分问题。云上问题可以先启动一个基础服务,非常简单的,然后登录到实例,启动自己的服务,逐步定位问题。
不用云托管,在docker里面也报错哦
&& pip config set global.trusted-host mirrors.cloud.tencent.com \
&& pip install --upgrade pip \ 删除这段我在本机docker是完全可以跑的。 这段是我看那个flask模板有这个我加上去试试的
你的 requirements 里有什么依赖
PyMySQL==1.0.3
python-multipart==0.0.6
requests==2.31.0
SQLAlchemy==2.0.16
uvicorn==0.22.0
就这么点东西,感觉挺正常的呀