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

封装python的docker镜像

基于alpine的python镜像封装。

docker pull python:3.10-alpine

准备

  • requirements.txt内容:
fastapi
uvicorn
  • server.py内容
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():return {"Hello": "world"}
if __name__ == '__main__':uvicorn.run("server:app",host="0.0.0.0",port=8000)
  • Dockerfile内容
FROM python:3.10-alpine
LABEL author="heruos"
WORKDIR /app
ADD . /app
EXPOSE 8000
RUN python3 -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD python3 /app/server.py

打包

build方式

# 使用主机网络,避免容器内访问不到外网的奇怪问题
docker build --network=host -t mypy:1.0 .

commit方式

docker run -it --rm --network=host python:3.10-alpine sh
python3 -m pip install fastapi uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple
# docker cp将文件放到容器内
# 依据修改后的容器封装成新的镜像
docker commit -a "heruos" -m "install fastapi" 容器id myfastapi:1.0

compose方式

在docker-compose文件中添加封装配置,封装后直接启动。

  • docker-compose.yaml内容
version: "3"
services:fastapi:build:context: .dockerfile: Dockerfile# 使用主机网络network: host# 指定的镜像就是封装后的镜像文件名image: fastapi:1.0container_name: fa_apphostname: fa_appports:- 8000:8000
  • 构建并启动
docker-compose up -d

测试

# 查看镜像和容器
docker images
docker ps -a
# curl测试
curl http://127.0.0.1:8000
http://www.xdnf.cn/news/1022869.html

相关文章:

  • 前端JavaScript面试题(2)
  • 面经总结池
  • Trae国内版使用技巧
  • 通关JUC:Java并发工具包从入门到精通 | 深度源码解析​
  • 720云vr全景怎么制作?720全景制作费用?
  • 什么是PostCSS
  • 【Python 进阶系列】第4篇:初探 Python Pandas 数据分析的世界
  • 数理化学习杂志社数理化学习杂志数理化学习编辑部2025年第3期目录
  • 习惯养成、亲子互动、分龄对话,声网AI撑起儿童产品三大核心
  • 基于通义灵码2.5的智能天气预警系统开发全记录
  • Data URI Scheme 详解:将数据嵌入 URL 的技术方案
  • 5、Spring AI(MCPServer+MCPClient+Ollama)开发环境搭建_第一篇
  • shell(2)
  • Mysql官方下载地址
  • AndroidStudio下载gradle依赖很慢的解决方法之一
  • LeetCode 704 二分查找 Java
  • 如何关闭WordPress中的评论通知
  • PostgreSQL的扩展moddatetime
  • 数据结构与算法:贪心(一)
  • 性能测试报告怎么写?要包括哪些内容
  • RAG详解
  • 26考研 | 王道 | 计算机组成原理 | 五、中央处理器
  • Linux重置root用户密码
  • 基于springboot旅游管理系统+源码+文档+视频
  • 快递接口调用选择:快递鸟、快递100、阿里云大对比
  • Mybatis-增删改查-删除操作
  • 完美解决openpyxl保存Excel丢失图像/形状资源的技术方案
  • UE5场景漫游——开始界面及关卡跳转
  • 勒贝格测度、勒贝格积分
  • 如何实现一个登录功能?