使用
python:3.9 作为基础镜像
# 使用官方的 Python 3.9 镜像作为基础镜像 FROM python:3.9 # FROM python:3.9-slim # 设置镜像的维护者信息 MAINTAINER Your Name <[email protected]> # 设置工作目录 WORKDIR /app # 复制当前目录中的所有文件到镜像的工作目录中 COPY . /app # 在镜像中执行命令,安装应用程序的依赖, requirements.txt 文件被复制到了 /app 目录中。 RUN pip install --no-cache-dir -r /app/requirements.txt # 暴露容器的端口 EXPOSE 80 # 定义容器启动时运行的命令 CMD ["python", "app.py"]
多阶段构建
- 阶段1(builder): 使用
python:3.9 作为基础镜像,将应用程序的代码复制到镜像中,然后安装依赖项并构建应用程序。构建好的文件将保存在/usr/local/lib/python3.9/site-packages 和/app 目录中。 - 阶段2: 使用
python:3.9-slim 作为基础镜像,只包含运行应用程序所需的最小依赖项。从前一个阶段中复制构建好的文件,包括依赖项和应用程序代码
# 阶段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"]