Dockerfile多阶段构建镜像(python)

使用 python:3.9 作为基础镜像

# 使用官方的 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 作为基础镜像,只包含运行应用程序所需的最小依赖项。从前一个阶段中复制构建好的文件,包括依赖项和应用程序代码
# 阶段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"]
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤来构建Python镜像并安装相应的包: 1. 首先,在你的项目目录下创建一个名为 `Dockerfile` 的文件。 2. 在 `Dockerfile` 中指定基础镜像。例如,使用官方的 Python 3.8 镜像:`FROM python:3.8` 3. 安装你需要的包。可以使用 `RUN` 命令来运行安装命令。例如,安装 Flask 和 numpy 包:`RUN pip install Flask numpy` 4. 将你的项目代码复制到容器中。可以使用 `COPY` 命令来复制文件。例如,复制当前目录下的所有文件到容器的 `/app` 目录下:`COPY . /app` 5. 设置容器的工作目录。可以使用 `WORKDIR` 命令来设置工作目录。例如,设置容器的工作目录为 `/app`:`WORKDIR /app` 6. 暴露容器的端口。可以使用 `EXPOSE` 命令来暴露端口。例如,暴露容器的端口为 `5000`:`EXPOSE 5000` 7. 指定容器启动时要运行的命令。可以使用 `CMD` 命令来指定启动命令。例如,启动 Flask 应用:`CMD ["python", "app.py"]` 下面是一个示例的 `Dockerfile` 文件: ``` FROM python:3.8 RUN pip install Flask numpy COPY . /app WORKDIR /app EXPOSE 5000 CMD ["python", "app.py"] ``` 在项目目录下运行以下命令来构建镜像: ``` docker build -t my-python-app . ``` 这将会构建一个名为 `my-python-app` 的镜像。你可以使用以下命令来运行该镜像: ``` docker run -p 5000:5000 my-python-app ``` 这将会启动容器,并将容器的端口 `5000` 映射到主机的端口 `5000`。你可以通过访问 `http://localhost:5000` 来访问你的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值