云之创网站建设wordpress侧栏文章

张小明 2026/1/9 8:16:29
云之创网站建设,wordpress侧栏文章,西宁做网站的好公司,wordpress用oss还是七牛目录前言docker部署python fastapi基本概念生成requestment文件Dockfile构建镜像启动容器容器启动失败时修复依赖缺失的解决方案#xff0c;重构正确镜像前言 这篇博客讲一下如何在centos服务器上用docker部署 python应用#xff0c;以及部署完成之后#xff0c;发现由于缺…目录前言docker部署python fastapi基本概念生成requestment文件Dockfile构建镜像启动容器容器启动失败时修复依赖缺失的解决方案重构正确镜像前言这篇博客讲一下如何在centos服务器上用docker部署 python应用以及部署完成之后发现由于缺第三方库导致容器启动失败无法进入容器手动安装第三方包的问题以及解决方案对docker不熟悉的朋友可以看下我的其他博客有讲关于docker相关的知识以及多种问题的解决方案docker部署python fastapi基本概念Python 镜像与 Java SpringBoot 镜像的构建逻辑存在核心差异Java 作为编译型语言可将项目编译后的字节码文件连同第三方依赖库的字节码文件一并打包为 JAR 包基于该 JAR 包即可直接构建出可运行的应用镜像而 Python 属于脚本型、解释型语言无需编译环节无法直接将第三方依赖库整合到项目文件中因此在构建 Python 镜像时需先将项目依赖的第三方库及其版本信息明确写入 requirements.txt 文件再在镜像构建过程中通过 pip 命令将这些依赖安装到镜像内。生成requestment文件requestment文件的内容是项目用到的第三方库以及版本信息便于构建python应用镜像时通过 pip 命令工具安装文件指定的第三方库到镜像内部一个标准的requestment文件内容如下fastapi0.124.4 langchain0.3.14 langchain-community0.3.14 langgraph0.2.65 pydantic2.12.5 python-dotenv1.2.1 uvicorn0.38.0 dashscope1.21.0一般在python项目根目录生成这个requestment文件主要的生成方式有两种通过AI编码插件智能体自动构建比如pycharm中可以安装通义灵码插件直接在通义灵码插件面板选择智能体让其生成项目的requestment文件。第二种方式是通过python 第三方包pipreqs工具生成这个工具需要提前通过pip install pipreqs命令提前安装最好安装在你的项目环境下安装完成后在控制台进入到你的项目根目录执行pipreqs . --encodingutf8 --force --ignore.venv,venv,__pycache__pipreqs工具会自动读取扫描当前目录及其子目录内的所有py文件主要是读取文件的import内容将第三方库以及版本信息创建写入到requestment.txt 文件中值得注意的是这两种方式无论哪一种我都试过生成的内容并不是很准确存在版本冲突的问题以及如果一个第三方库内部引用了另一个第三方库间接引用的第三方库无法被正确写入requestment 文件内。这个问题的解决方案 在博客最后一个章节总结了解决方案。Dockfile构建镜像将项目根目录上传到服务器在项目根目录中创建Dockerfile镜像构建文件编辑内容如下# 使用官方Python 3.12的轻量级版本作为基础镜像FROM python:3.12-slim# 设置容器内的工作目录WORKDIR /app# 将依赖列表文件复制到工作目录COPY requirements.txt .# 可选但推荐配置pip使用国内镜像源以加速本地构建RUN pip install--upgrade pip-i https://pypi.tuna.tsinghua.edu.cn/simple# 读取requirements.txt安装第三方库到镜像内部RUN pip install-r requirements.txt-i https://pypi.tuna.tsinghua.edu.cn/simple# 将项目所有源代码复制到容器中 [4,10]COPY . .# 暴露FastAPI应用运行的端口例如8000 [1,3]EXPOSE 8000# 设置容器启动命令 [1,4](ref)CMD[uvicorn,main:app,--host,0.0.0.0,--port,8000]在构建镜像过程中docker会自动下载python:3.12-slim基础镜像网速不好的朋友可以提前执行下面的命令提前将python3.12基础镜像下载到服务器中。docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.12-slim docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.12-slim python:3.12-slim最后在服务器项目根目录即Dockerfile目录内执行docker build -t 镜像名称 .就构建好了你的python应用镜像启动容器执行docker run ,配置端口、网络、容器名等配置 启动容器docker run -d -p8000:8000 --name my-fastapi-container my-fastapi-app我们 通过docker ps 命令 查看应用是否正常启动很有可能你的python应用由于缺包导致启动失败此时我们再通过docker logs -f 容器名 查看容器的启动日志大概率会看到缺包导致启动失败的错误信息容器启动失败时修复依赖缺失的解决方案重构正确镜像此时容器由于启动失败已经停止运行此时我们无法通过docker exec -it 容器名 bash的方式进入容器进而pip install 安装缺失的包这是一个棘手的问题。一个有效的解决方案是不要以直接运行镜像中的python应用的方式启动容器而是以启动命令行交互的方式启动容器容器启动失败的核心是CMD/ENTRYPOINT执行的命令报错退出我们可以覆盖启动命令让容器以交互式 shell 运行不执行原业务逻辑从而进入容器安装缺失包# 注意镜像还是之前的镜像只是以命令行方式启动容器docker run -it --name temp-api 原先的镜像名 /bin/bash启动后安装缺失的包并在容器内部的命令行中启动应用测试是否可以正常运行如果仍有缺失的包 继续安装直到应用启动成功为止。# 1. 先升级pip可选加速安装pipinstall--upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple# 2. 安装缺失的包示例假设缺requests、langchain-core# 替换为你实际缺失的包名pipinstall缺失包名1 缺失包名2 -i https://pypi.tuna.tsinghua.edu.cn/simple# 3. 直接在容器内运行FastAPI应用验证依赖是否修复uvicorn main:app --host0.0.0.0 --port8008安装包后运行正常把容器的修改保存为新镜像这个新的镜像就是你的python应用最终的完整镜像。# 先开新终端查看临时容器IDdockerps# 提交修改container_id替换为临时容器的IDnew-image:tag为新镜像名docker commit 运行正常的容器名或者id 新的镜像名:tag# 用新镜像启动业务容器docker run -d -p8000:8000 --name my-fastapi-container my-fastapi-app
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

花都区网站建设手机终端网站

从零开始:Gobot框架实战指南与物联网开发全解析 【免费下载链接】gobot Golang framework for robotics, drones, and the Internet of Things (IoT) 项目地址: https://gitcode.com/gh_mirrors/go/gobot 在当今物联网技术蓬勃发展的时代,掌握机器…

张小明 2025/12/30 21:47:48 网站建设

网站logo设计创意wordpress 首页判断

AutoGPT错误日志分析技巧:快速定位问题根源 在当前AI智能体迅猛发展的背景下,AutoGPT作为早期开源自主代理的代表,正被越来越多开发者用于自动化任务执行——从撰写技术报告到数据分析、项目规划。它不再只是回答“是什么”,而是…

张小明 2025/12/31 4:04:50 网站建设

深圳市制作网站简单的个人网页制作

腾讯MimicMotion开源:虚拟人动画制作效率提升300%,成本直降70% 【免费下载链接】MimicMotion MimicMotion是腾讯开源的高质量人体动作视频生成模型,基于Stable Video Diffusion优化,通过置信度感知姿态引导技术,精准还…

张小明 2026/1/5 8:49:45 网站建设

学习网站开发体会与感想大数据统计网站

还在为复杂的游戏模组配置而烦恼?想要一键解锁游戏隐藏功能却不知从何入手?Reloaded-II作为新一代.NET Core驱动的模组加载器,专为游戏爱好者打造零门槛的模组管理体验。无论你是技术小白还是资深玩家,都能轻松驾驭这款强大的工具…

张小明 2025/12/30 9:40:17 网站建设

一个网站做app江西省住房和城乡建设网站

在工业测量、仪器仪表、传感器信号采集等高精度模拟信号处理领域,高分辨率、低噪声的Sigma-Delta模数转换器(ADC)是关键器件。美国ADI公司的AD7124-4,和深圳市捷比信提供的国产芯片JEPSUN HCT6931均是面向此类应用的24位ADC芯片。…

张小明 2026/1/1 4:03:21 网站建设

如何建设网站 企业沈阳工伤保险做实在哪个网站

在工业生产、研发、运维中,数据记录是企业核心基础 —— 优化流程、研发技术、维护设施,都离不开真实完整的历史数据,这是高效运营与创新的前提。但多数企业面临三大难题:设备品牌杂、数据分散,协议不兼容导致 “连不上…

张小明 2025/12/31 22:20:09 网站建设