构建 Python Docker 容器镜像的最佳实践

【摘要】这篇文章是关于制作 Python Docker 容器镜像的最佳实践。最佳实践的目的一方面是为了减小镜像体积,提升 DevOps 效率,另一方面是为了提高安全性。希望对各位有所帮助。

通用 Docker 容器镜像最佳实践

这里也再次罗列一下对 Python Docker 镜像也适用的一些通用最佳实践。

• 使用 LABEL maintainer 

• 标记重要端口

• 设置环境变量

• 使用非 root 用户运行容器进程

• 使用 .dockerignore 排除无关文件

Python 镜像推荐设置的环境变量

Python 中推荐的常见环境变量如下:

# 设置环境变量ENV PYTHONDONTWRITEBYTECODE 1ENV PYTHONUNBUFFERED 1

1. ENV PYTHONDONTWRITEBYTECODE 1 : 建议构建 Docker 镜像时一直为 1, 防止 python 将 pyc 文件写入硬盘

2. ENV PYTHONUNBUFFERED 1 : 建议构建 Docker 镜像时一直为 1, 防止 python 缓冲 (buffering) stdout 和 stderr, 以便更容易地进行容器日志记录

3. ❌不再建议使用 ENV DEBUG 0 环境变量 ,没必要。

使用非 root 用户运行容器进程

出于安全考虑,推荐运行 Python 程序前,创建 非 root 用户并切换到该用户。

​​​​​​​

# 创建一个具有明确 UID 的非 root 用户,并增加访问 /app 文件夹的权限。

你可能感兴趣的:(大数据及数据管理(治理)专栏,docker,运维,git)