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