1、Dockerfile
Dockerfile 文件一般包含基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
参考文件::Docker 构建自定义镜像和Dockerfile文件
2、直接安装
通过Dockerfile文件构建镜像时,直接通过命令进行进行安装软件包,创建一个轻量级的Python 3运行环境,适用于需要Python 3作为运行环境的应用程序。优化了容器的大小,并确保了日志输出的即时性。
FROM alpine:latest
ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python
RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools
说明:
指令 | 作用 |
---|---|
FROM alpine:latest | 使用最新版本的Alpine Linux作为基础镜像。 |
ENV PYTHONUNBUFFERED=1 | 设置环境变量以确保Python输出实时打印,而不是被缓冲。 |
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python | 安装Python 3并更新包索引,不缓存任何包,创建python 到python3 的符号链接。 |
RUN python3 -m ensurepip | 确保pip安装器被安装。 |
RUN pip3 install --no-cache --upgrade pip setuptools | 使用pip升级pip本身和setuptools包,不缓存任何安装过程中的文件。 |
3、编译安装
通过Dockerfile文件构建镜像时,安装依赖环境后,在下载Python源代码,然后在通过编译安装,如下,
FROM alpine:latest # 指定Python的版本 ARG PYTHON_VERSION=3.9.9 # install build dependencies and needed tools RUN apk add \ wget \ gcc \ make \ zlib-dev \ libffi-dev \ openssl-dev \ musl-dev # download and extract python sources RUN cd /opt \ && wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz \ && tar xzf Python-${PYTHON_VERSION}.tgz # build python and remove left-over sources RUN cd /opt/Python-${PYTHON_VERSION} \ && ./configure --prefix=/usr --enable-optimizations --with-ensurepip=install \ && make install \ && rm /opt/Python-${PYTHON_VERSION}.tgz /opt/Python-${PYTHON_VERSION} -rf
说明:
指令 | 解释 |
FROM alpine:latest | 设置基础镜像为最新版的Alpine Linux。 |
ARG PYTHON_VERSION=3.9.9 | 定义构建参数 PYTHON_VERSION ,默认设置Python版本为3.9.9。 |
RUN apk add \ wget \ gcc \ make \ zlib-dev \ libffi-dev \ openssl-dev \ musl-dev | 安装编译Python所需的依赖,包括编译器、下载工具和必要的开发库。 |