推荐答案
-- -------------------- ---- ------- - ---- ------ --- -------- ---- --------------- - ------ ------- ---- - ------------------ ---- - - - ------ --- --- ------- -------------- -- ---------------- - ---- ------ ---- - ------ --- ------------------ - ---- --- ---------- ---------展开代码
本题详细解读
1. 基础镜像选择
FROM python:3.9-slim
:选择了一个轻量级的 Python 3.9 镜像作为基础镜像。slim
版本通常比完整版镜像更小,适合生产环境使用。
2. 设置工作目录
WORKDIR /app
:将容器内的工作目录设置为/app
,后续的命令都会在这个目录下执行。
3. 复制文件
COPY . .
:将当前目录下的所有文件复制到容器的工作目录/app
中。这一步通常用于将应用程序代码和依赖文件复制到容器中。
4. 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
:使用pip
安装requirements.txt
文件中列出的所有依赖项。--no-cache-dir
选项用于避免缓存,减少镜像大小。
5. 暴露端口
EXPOSE 8000
:暴露容器的 8000 端口,允许外部访问。这个端口通常用于 Web 应用。
6. 设置环境变量
ENV PYTHONUNBUFFERED=1
:设置环境变量PYTHONUNBUFFERED
为1
,确保 Python 输出不会被缓冲,方便调试。
7. 运行应用
CMD ["python", "app.py"]
:指定容器启动时运行的命令。这里使用python
运行app.py
文件。CMD
指令用于定义容器启动时的默认行为。
通过以上步骤,Dockerfile 定义了一个基于 Python 3.9 的应用程序容器,包含了代码复制、依赖安装、端口暴露和应用启动等关键步骤。