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"]
相关推荐
青瓷程序设计2 小时前
动物识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
tobebetter95272 小时前
How to manage python versions on windows
开发语言·windows·python
F_D_Z2 小时前
数据集相关类代码回顾理解 | sns.distplot\%matplotlib inline\sns.scatterplot
python·深度学习·matplotlib
daidaidaiyu3 小时前
一文入门 LangGraph 开发
python·ai
小雪_Snow3 小时前
CentOS 7 测试 docker 镜像源
docker·centos
不知更鸟4 小时前
前端报错:快速解决Django接口404问题
前端·python·django
4***72134 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
梁正雄4 小时前
1、python基础语法
开发语言·python
ituff5 小时前
微软认证考试又免费了
后端·python·flask
wan_da_ren6 小时前
Docker安装Elasticsearch9.2.1与Kibana9.2.1 保姆教程(带验证版)
运维·docker·jenkins