当前位置: 首页 > wzjs >正文

松岗专业做网站公司乐昌网站建设

松岗专业做网站公司,乐昌网站建设,企业网站用织梦好吗,孟州网站建设文章目录 一、构建运行 Docker 容器1. 查找合适镜像2.本地docker 拉取镜像3.项目配置1. python项目下生成 requirements.txt 依赖文件2. 生成Dockerfile文件3.忽略不必要文件4. 构建镜像 4. 运行容器5.测试 二、常见问题与解决方案 一、构建运行 Docker 容器 1. 查找合适镜像 …

文章目录

  • 一、构建运行 Docker 容器
    • 1. 查找合适镜像
    • 2.本地docker 拉取镜像
    • 3.项目配置
      • 1. python项目下生成 requirements.txt 依赖文件
      • 2. 生成Dockerfile文件
      • 3.忽略不必要文件
      • 4. 构建镜像
    • 4. 运行容器
    • 5.测试
  • 二、常见问题与解决方案

一、构建运行 Docker 容器

1. 查找合适镜像

打开 https://hub.docker.com/_/python/tags 找到合适自己的镜像,我找到的是 python:3.13.3-alpine3.22

根据环境选择镜像:

  • 开发环境:使用 python:3.12-buster 或完整镜像,便于调试和安装依赖。
  • 生产环境:使用 python:3.12-slim 或 python:3.12-alpine,减少攻击面和镜像体积。

2.本地docker 拉取镜像

docker pull python:3.13.3-alpine3.22

在这里插入图片描述

 docker images

在这里插入图片描述

3.项目配置

1. python项目下生成 requirements.txt 依赖文件

pip freeze > requirements.txt

在这里插入图片描述
文件内容:
在这里插入图片描述

2. 生成Dockerfile文件

FROM python:3.12.10-alpine3.22# 设置工作目录
WORKDIR /appCOPY . .RUN adduser -D appuser# 使用国内镜像源并增加超时时间
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 复制依赖文件并安装(添加超时和重试)
COPY requirements.txt .
RUN pip install --no-cache-dir \--timeout 100 \gunicorn>=21.2.0 \-r requirements.txt# 验证安装(关键!)
RUN which gunicorn && gunicorn --versionUSER appuser# 启动命令
CMD ["gunicorn", "-b", "0.0.0.0:5000", "app:app", "--workers", "4", "--threads", "2"]

代码解释:

    1. RUN pip config set global.index-url 设置国内镜像,更快下载依赖
    1. COPY . . 正式环境部署时,采用 代码打包进镜像,数据用数据卷 的方案
    • 避免因宿主机文件变动导致服务异常
    • 容器与宿主机文件系统隔离,减少攻击面。
    • 日志、配置等数据需持久化存储。
    1. gunicorn>=21.2.0 强制安装 Gunicorn(不依赖 requirements.txt)
    • 强制安装 Gunicorn(不依赖 requirements.txt),开发环境不用安装 Gunicorn
    1. CMD [“gunicorn”, “-b”, “0.0.0.0:5000”, “app:app”, “–workers”, “4”, “–threads”, “2”]
    • Gunicorn 启动 Flask 应用
    • -b 0.0.0.0:5000 绑定(bind)地址和端口
    • 让 Gunicorn 服务器在容器内部的 5000 端口接收外部请求
    • app:app 模块名:应用实例名
      • 第一个 app:Python 文件或模块名(如 app.py)。
      • 第二个 app:Flask 应用实例名(通常在代码中定义为 app = Flask(name))。
    • –workers 4
      • 启动 4 个 worker 进程(即 4 个独立的 Python 进程)
    • –threads 2
      • 每个 worker 进程启动 2 个线程。

适用场景

这条命令适合 I/O 密集型的 Flask 应用,例如:

  • API 接口服务(大量 HTTP 请求)。
  • 数据库 CRUD 操作(等待数据库响应时线程可处理其他请求)。
  • 调用外部 API 的服务(如调用第三方支付、短信等)。

3.忽略不必要文件

创建 .dockerignore 文件排除不需要的文件:

__pycache__
*.pyc
*.pyo
*.pyd
.venv
Dockerfile
.git

4. 构建镜像

在项目根目录执行:

 docker build -t flask-api:prod.v1.1 .
  • -t:指定镜像标签(格式:[仓库名]:[版本号])
  • .:指定构建上下文(当前目录)

在这里插入图片描述

4. 运行容器

docker rm -f flask-api && docker run -d -p 5000:5000  --name flask-api flask-api:prod
  • 启动前删除 flask-api 容器
  • -d:后台运行
  • -p 5000:5000 端口映射(主机:容器)

5.测试

curl http://localhost:5000

二、常见问题与解决方案

  1. 问题:容器启动后立即退出。
    原因:主进程(如 app.py)未保持运行(如脚本执行完就退出)。
    解决:确保应用持续监听端口(如 Flask/Django 服务)。

  2. 问题:依赖安装失败(如 Alpine 镜像缺少编译工具)。
    解决:在 Dockerfile 中添加编译依赖:

    RUN apk add --no-cache gcc musl-dev
    
  3. 问题:修改代码后需重新构建整个镜像。
    解决:利用 Docker 缓存,先复制 requirements.txt 并安装依赖,再复制代码。

http://www.dtcms.com/wzjs/557278.html

相关文章:

  • 旗县长安网站建设思路那个网站建设好
  • 天津个人网站制作wordpress改不成中文
  • 网站标题组合秦皇岛抚宁区建设局网站
  • 网络工程适合女生吗几级英语可以做外贸网站seo
  • 网站开发语言 知乎wordpress安装没有选择语言
  • 凯里网站开发gzklyy六安网站制作人才招聘
  • 做网站杭州傲视信息陈木胜怎么走的
  • 化妆品网站建设目标与期望公司网站设计图
  • 西安做企业网站app制作公司排行榜
  • 柳州建设公司网站南昌定制网站开发费用
  • 海报模板在线制作免费网站本溪市城乡住房建设厅网站
  • reeyee网站建设wordpress 评论go跳转
  • 苏格网站建设公司网页网站建设 ppt模板
  • 教做网站的学校3d动画制作
  • 有自媒体谁还做网站wordpress2010如何适应手机
  • 无锡手机网站建设报价创鑫云网络
  • 买域名之后怎样做网站在工商网站上怎么做电话的变更
  • 主流的自助建站网站电影网页设计模板图片
  • 保健品网站设计机构传播公司可以做门户网站吗
  • 深圳制作网站哪家好要找企业做网站应该注意什么
  • 功能型网站开发价格展示设计公司有哪些
  • 建设网站的服务费是指什么互联网营销师是我国哪一年发布的新职业
  • 网站后台编辑网站建设的知识
  • 建一个下载网站要什么cms系统网页视频下载快捷键
  • 深圳做网站外包公司有哪些建设银行贷款网站
  • 极速建站网站的总体方案与功能设计
  • 网站建设需要看什么书农业网站建设
  • 网站备案省份湖州建设局新网站
  • 用dw做音乐网站毕设网站代做一般预算多少钱
  • 江阴高新区建设促进服务中心网站建网站的步骤