这是我父亲 日记里的文字
这是他的生命 留下留下来的散文诗
几十年后 我看着泪流不止
可我的父亲已经 老得像一个影子
🎵 许飞《父亲写的散文诗》
如何用 Docker 打包一个 Python 脚本
Docker 是一个开源的容器化平台,允许开发者将应用程序及其所有依赖项打包成一个标准化的单元,以便在任何环境中一致地运行。在这篇博客中,我们将演示如何使用 Docker 来打包一个简单的 Python 脚本,使其可以在任何支持 Docker 的环境中运行。
步骤 1:准备 Python 脚本
首先,我们需要一个简单的 Python 脚本。为了演示,我们创建一个名为 app.py 的脚本,内容如下:
python
# app.py
import requests
def fetch_github():
response = requests.get("https://api.github.com")
if response.status_code == 200:
print("GitHub API is reachable.")
else:
print("Failed to reach GitHub API.")
if __name__ == "__main__":
fetch_github()
这个脚本使用 requests 库来请求 GitHub API,并打印出相应的消息。
步骤 2:创建 requirements.txt
接下来,我们需要创建一个 requirements.txt 文件,列出我们的 Python 脚本所需的依赖项。在当前目录下创建 requirements.txt 文件,内容如下:
requests
步骤 3:编写 Dockerfile
Dockerfile 是 Docker 用来构建镜像的指令文件。在项目的根目录下创建一个名为 Dockerfile 的文件,内容如下:
Dockerfile
# 使用官方 Python 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录的内容到容器中的 /app 目录
COPY . /app
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 运行 Python 脚本
CMD ["python", "app.py"]
这份 Dockerfile 文件包含以下几个部分:
- FROM 指令指定了基础镜像,这里使用的是轻量级的 python:3.9-slim。
- WORKDIR 指令设置了容器中的工作目录。
- COPY 指令将当前目录的所有内容复制到容器中的 /app 目录。
- RUN 指令运行 pip install 命令来安装依赖项。
- CMD 指令指定了容器启动时执行的命令,这里是运行 app.py 脚本。
步骤 4:构建 Docker 镜像
在项目根目录下打开终端,运行以下命令构建 Docker 镜像:
bash
docker build -t python-app .
这将使用当前目录中的 Dockerfile 构建一个名为 python-app 的镜像。
步骤 5:运行 Docker 容器
构建完成后,可以使用以下命令运行 Docker 容器:
bash
docker run --rm python-app
- --rm 标志表示容器在退出时会自动删除。
运行上述命令后,你应该会看到类似如下的输出:
csharp
GitHub API is reachable.
这表示我们的 Python 脚本已经成功运行,并且能够访问 GitHub API。
总结
通过以上步骤,我们演示了如何使用 Docker 将一个简单的 Python 脚本打包成一个可移植的容器镜像。Docker 不仅可以简化开发和部署流程,还能确保在不同环境中的一致性,使得应用程序更加稳定和可靠。