宁波网站建设哪里便宜信科网络广州建网站

张小明 2026/1/11 12:33:52
宁波网站建设哪里便宜,信科网络广州建网站,有没有做catalog的网站,定制网站制作公司哪家好程序员都遇到过上线部署项目的问题#xff0c;那么在python中怎么部署一个应用呢#xff1f;其实现在大家都用docker打包后进行部署。 为什么要用Docker#xff1f; 同事是个老程序员#xff0c;什么都喜欢手动#xff0c;后来部署python应用他就出现了这些问题#xff1…程序员都遇到过上线部署项目的问题那么在python中怎么部署一个应用呢其实现在大家都用docker打包后进行部署。为什么要用Docker同事是个老程序员什么都喜欢手动后来部署python应用他就出现了这些问题开发环境Python 3.9服务器是3.6某个语法不支持本地用SQLite线上用MySQL连接方式完全不一样依赖库版本对不上一个隐蔽的bug只在生产环境出现他折腾了几天。如果用Docker这些问题根本不会出现。第一步在打包之前先整理检查一下你的应用。以我的manyan项目为例manyan/ ├── app.py # 主程序 ├── requirements.txt # 依赖清单 ├── config/ # 配置文件 ├── logs/ # 日志目录 └── migrations/ # 数据库迁移关键检查点所有依赖都在requirements.txt里吗用pip freeze requirements.txt检查敏感信息密码、API密钥从代码里剥离了吗日志是写到文件还是标准输出容器里建议用标准输出第二步写Dockerfile配置文件就是告诉Docker怎么打包你的应用。这是我给manyan项目写的# 选择基础镜像Python 3.9的轻量版 FROM python:3.9-slim # 设置工作目录容器里的/app目录 WORKDIR /app # 先复制依赖文件这样能利用Docker的缓存层 COPY requirements.txt . # 安装依赖清华源加速 RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 复制整个项目代码 COPY . . # 设置时区避免日志时间不对 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 创建一个非root用户运行应用安全考虑 RUN useradd -m -u 1000 appuser chown -R appuser:appuser /app USER appuser # 告诉Docker怎么启动应用 CMD [gunicorn, --bind, 0.0.0.0:8080, --workers, 3, app:app]关键点分阶段复制先复制requirements.txt这样改代码时不用重新安装依赖非root用户用root跑应用是大忌国内镜像源加速安装过程第三步打包前先本地测试# 1. 构建镜像最后的点表示当前目录docker build -t manyan:latest.# 2. 运行容器-d后台运行-p端口映射docker run -d --name manyan-test -p8000:8080 manyan:latest# 3. 测试访问curlhttp://localhost:8000/health# 4. 查看日志docker logs manyan-test# 5. 进入容器看看调试用dockerexec-it manyan-test /bin/bash如果一切正常你会看到应用在容器里欢快地跑着。第四步正确设置和读取配置文件。别把数据库密码写在代码里然后打包进镜像了…正确做法环境变量 配置文件挂载# app.py里这样读取配置importosfromdotenvimportload_dotenv load_dotenv()# 加载.env文件DATABASE_URLos.getenv(DATABASE_URL,sqlite:///local.db)DEBUGos.getenv(DEBUG,False).lower()true然后在运行容器时传入docker run -d\--name manyan\-p8000:8080\-eDATABASE_URLmysql://user:passdb:3306/manyan\-eDEBUGFalse\-v$(pwd)/config:/app/config\manyan:latest或者用.env文件# .env文件DATABASE_URLmysql://user:passdb:3306/manyanDEBUGFalseREDIS_URLredis://redis:6379/0# 运行docker run --env-file .env -p8000:8080 manyan:latest第五步多服务协作真实应用很少单打独斗。manyan需要PostgreSQL数据库和Redis缓存# docker-compose.ymlversion:3.8services:# 主应用manyan:build:.ports:-8000:8080environment:-DATABASE_URLpostgresql://manyan_user:passworddb:5432/manyan_db-REDIS_URLredis://redis:6379/0depends_on:-db-redisvolumes:-./logs:/app/logs# 日志持久化restart:unless-stopped# 自动重启# 数据库db:image:postgres:13environment:POSTGRES_USER:manyan_userPOSTGRES_PASSWORD:passwordPOSTGRES_DB:manyan_dbvolumes:-postgres_data:/var/lib/postgresql/data# Redisredis:image:redis:6-alpinecommand:redis-server--appendonly yesvolumes:-redis_data:/datavolumes:postgres_data:redis_data:启动整个栈docker-compose up -d一行命令三个服务全部启动网络自动配置好。第六步本地测试好了现在要上线。方案A简单直接适合小项目# 1. 把代码传到服务器scp-r manyan userserver:/app/# 2. 在服务器上构建和运行sshuserservercd/app/manyan docker-compose up -d方案B镜像仓库更正规# 1. 推送到Docker Hubdocker tag manyan:latest yourname/manyan:1.0 docker push yourname/manyan:1.0# 2. 服务器拉取并运行docker pull yourname/manyan:1.0 docker run -d --name manyan -p8000:8080 yourname/manyan:1.0方案C自动化部署GitHub Actionsname:自动部署on:[push]jobs:deploy:runs-on:ubuntu-lateststeps:-name:部署到服务器uses:appleboy/ssh-actionv0.1.4with:host:${{secrets.SERVER_HOST}}username:${{secrets.SERVER_USER}}key:${{secrets.SSH_KEY}}script:|cd /app/manyan git pull docker-compose down docker-compose build docker-compose up -d生产环境优化默认配置能用但生产环境需要更多考虑资源限制——防止一个容器吃光所有内存manyan:deploy:resources:limits:cpus:1memory:512Mreservations:memory:256M健康检查——让Docker知道应用是否健康HEALTHCHECK --interval30s --timeout3s --start-period5s --retries3 \ CMD curl -f http://localhost:8080/health || exit 1日志驱动——更好的日志管理docker run --log-driverjson-file --log-opt max-size10m --log-opt max-file3...常见坑和填坑指南坑1容器时区不对解决Dockerfile里设置时区或者运行容器时加-e TZAsia/Shanghai坑2应用写文件重启后没了解决用volumes挂载需要持久化的目录坑3性能比直接部署慢解决可能是虚拟化开销对于性能敏感应用考虑–networkhost模式坑4镜像太大传输慢解决用alpine基础镜像多阶段构建清理不必要的文件监控和维护上线只是开始应用跑起来后# 查看状态docker-composeps# 查看日志docker-compose logs -f manyan# 进入容器调试docker-composeexecmanyan /bin/bash# 更新应用docker-compose pull manyan docker-compose up -d# 备份数据docker-composeexecdb pg_dumpall -U postgresbackup.sql什么时候不该用DockerDocker不是万能的。如果你的应用对性能极端敏感高频交易系统需要特殊硬件访问GPU直通只是简单的脚本跑完就结束团队完全不懂容器技术那可能直接部署更合适。说点实在的我第一次用Docker部署时花了三天时间。现在从零部署一个Python应用到上线大概30分钟。关键不是技术多先进而是形成流程写代码 → 2. 写Dockerfile → 3. 本地测试 → 4. 推仓库 → 5. 服务器拉取运行这套流程熟了之后部署从玄学变成机械操作。再也不用说“我本地跑得好好的”了因为本地和线上环境一模一样。你的下一个Python项目试试用Docker打包。第一次可能有点磕绊但一旦跑通你就回不去了。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

电视剧男女直接做视频网站文库类网站建设建议及经验

引言大家好,我是Wise玩转AI。在前两期的实践中,我们构建了一个具备基础查询和预约功能的医院导诊智能体。今天,我们将进入第3期的工程实践,重点优化智能体的问答能力和引入记忆系统。正如我们在理论文章中强调的,记忆系…

张小明 2026/1/4 18:51:26 网站建设

连云港 网站 建设网站 模板 下载

第一章:Open-AutoGLM的崛起与行业变革随着大模型技术进入工业化落地阶段,Open-AutoGLM作为首个开源的自动化通用语言模型系统,正在重塑AI研发范式。其核心优势在于将自然语言理解、任务编排与代码生成深度融合,支持端到端的任务自…

张小明 2026/1/4 20:42:20 网站建设

网站建设过程发生的费用网站投稿源码

HuggingFace模型上传流程:基于PyTorch-CUDA-v2.6进行微调后发布 在深度学习项目中,从本地训练到成果共享的“最后一公里”往往比想象中更复杂。你可能花了几小时调通环境、跑完微调,结果却卡在如何让同事一键复现你的模型——这正是许多AI工程…

张小明 2026/1/11 5:34:29 网站建设

网站 改版 建议郑州h5网站建设价格

大模型走进日常科研后,一些尴尬现实很快暴露出来:它懂很多公共知识,却不懂我们的本地资料;什么都能聊两句,却对特定领域知之甚少,或者很难长期按既定规则稳定办事。 于是就出现了两条互补的路子&#xff1a…

张小明 2026/1/5 15:46:40 网站建设

烟台 做网站珠海城乡建设厅网站

LangFlow与舆情监控结合:品牌声誉实时跟踪 在社交媒体主导信息传播的今天,一条负面评论可能在几小时内发酵成一场品牌危机。某知名手机厂商曾因用户集中反馈“电池异常发热”,在微博和小红书上引发广泛讨论,而内部团队直到三天后才…

张小明 2026/1/5 18:39:01 网站建设

粉色大气妇科医院网站源码网站建设 的公司

摘要 随着设备形态越来越多样化,单一设备已经很难覆盖所有使用场景。手机、平板、智慧屏、穿戴设备、车机同时存在,用户对“设备之间协同”的需求也越来越高。 在传统系统中,不同设备之间的硬件能力往往是割裂的,比如手机的摄像头…

张小明 2026/1/10 16:55:43 网站建设