FROM alpine:latest
# you can specify python version during image build
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
# rest of the image, python3 and pip3 commands will be available
8条答案
按热度按时间wvyml7n51#
这是我在Dockerfile中使用的alpine镜像:
fslejnso2#
看看alpine的package repo:https://pkgs.alpinelinux.org/packages所以你要找的是
python3
和py3-pip
包。在dockerfile/etc中使用的合适命令。将是:
--no-cache
标志的说明但是请注意,您需要添加社区存储库,因为
py3-pip
是main
上的not present。odopli943#
而不是python3-pipinstallpy 3-pip
kcrjzv8t4#
你可以试试这个命令:
tuwxkamq5#
额外的选项是在镜像构建期间 build python:
此代码段从源代码下载并构建指定版本的python(与pip一起)。这可能是一个矫枉过正,但有时它可能会派上用场。
xn1cxnb46#
你可以使用python官方图片,它也提供了alpine标签。你可能会得到最先进的python安装:
例如:
FROM python:3-alpine
pb3skfrl7#
看起来你正在尝试安装一个特定的次要版本的Python3(3.8),你可以在Alpine中使用semver这样做,它将安装一个版本的
python3>=3.8.0 <3.9.0-0
:bogh5gae8#
我不得不在空气间隙网络中安装python,所以我无法运行
apk add
。下面是我如何在一个在线alpine容器中获得所需的包:我的Dockerfile看起来像这样:
地狱般的依赖得到了解决。