Dockerfile多阶段构建镜像(python)

使用 python:3.9 作为基础镜像

bash 复制代码
# 使用官方的 Python 3.9 镜像作为基础镜像
FROM python:3.9
# FROM python:3.9-slim

# 设置镜像的维护者信息
MAINTAINER Your Name <your.email@example.com>

# 设置工作目录
WORKDIR /app

# 复制当前目录中的所有文件到镜像的工作目录中
COPY . /app

# 在镜像中执行命令,安装应用程序的依赖, requirements.txt 文件被复制到了 /app 目录中。
RUN pip install --no-cache-dir -r /app/requirements.txt

# 暴露容器的端口
EXPOSE 80

# 定义容器启动时运行的命令
CMD ["python", "app.py"]

多阶段构建

  1. 阶段1(builder): 使用 python:3.9 作为基础镜像,将应用程序的代码复制到镜像中,然后安装依赖项并构建应用程序。构建好的文件将保存在 /usr/local/lib/python3.9/site-packages/app 目录中。
  2. 阶段2: 使用 python:3.9-slim 作为基础镜像,只包含运行应用程序所需的最小依赖项。从前一个阶段中复制构建好的文件,包括依赖项和应用程序代码
bash 复制代码
# 阶段1: 构建应用程序
FROM python:3.9 AS builder

# 设置工作目录
WORKDIR /app

# 复制应用程序代码到镜像中
COPY . /app

# 在镜像中执行命令,安装依赖项并构建应用程序
RUN pip install --no-cache-dir -r /app/requirements.txt
RUN python setup.py install

# 阶段2: 创建轻量级的运行时镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 从前一个阶段中复制构建好的应用程序
COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
COPY --from=builder /app /app

# 暴露容器的端口
EXPOSE 80

# 定义容器启动时运行的命令
CMD ["python", "/app/app.py"]
相关推荐
码云骑士4 小时前
94-实战Prompt优化师Agent-迭代优化-效果评分-自动生成Few-Shot
python·prompt
从零开始学习人工智能5 小时前
PyTorch 踩坑:Input type \(Half\) and bias type \(float\) 类型不匹配终极解决方案
人工智能·pytorch·python
海盗12345 小时前
微软技术日报——2026-08-07
python·microsoft·flask
醉城夜风~5 小时前
querySelector()
人工智能·python·tensorflow
wsad05325 小时前
Docker 网络故障排查记:当 bridge 模式失效时,host 模式如何救场
运维·docker·容器
看浪的路人5 小时前
第5讲:代码审查与 Bug 检测
开发语言·windows·python
张毅2004-10-106 小时前
docker详解:安装docker,docker架构,docker镜像、容器、网络、存储,容器监控,容器日志,综合实验
linux·运维·docker·云原生·云计算
营养充电站6 小时前
C++23 新特性在 CLion 中的实战体验
macos·docker·jupyter·正则表达式
文优6 小时前
Linux 常用命令速查手册(工作版)
linux·运维·docker
码云骑士6 小时前
93-Prompt注入攻击与防御-直接注入-间接注入-越狱-输入净化
python·prompt