我目前正在建立阿尔卑斯山的图像:3.7。
有两个我遇到问题的软件包:
我收到的错误是:
无法找到满足要求setuptools的版本(来自版本:)没有找到setuptools的匹配分发
注意:所有软件包都使用pip download预先缓存在目录中。
dockerfile如下所示:
RUN apk add --no-cache --virtual .build-deps <dev packages>
&& apk add --no-cache --update python3
&& pip3 install --upgrade pip setuptools
RUN pip3 install -f ./python-packages --no-index -r requirements.txt ./python-packages/pkgs
....
dev-packages,如libffi-dev,libressl-dev等。
答案 0 :(得分:2)
显然在使用以下内容升级pip时
pip3 install --upgrade pip setuptools
我删除了pip升级和安装工作。现在,我一直在研究升级pip on alpine的正确方法,并在github repo中找到了一个Dockerfile来执行此检查:
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
通过在python和系统二进制文件上执行符号链接,可以确保在调用 pip 命令时引用 pip3 。目录。
答案 1 :(得分:1)
我不确定要在问题中构建的完整dev-package列表,但它应该是以下内容:g++
(GNU C ++标准库和编译器),python3-dev
(python3开发文件),libffi-dev
(libffi开发文件)和openssl-dev
(用于SSL v2 / v3和TLS v1开发文件的工具包)。
Dockerfile
是:
FROM alpine:3.7
RUN apk add --no-cache --virtual .build-deps g++ python3-dev libffi-dev openssl-dev && \
apk add --no-cache --update python3 && \
pip3 install --upgrade pip setuptools
RUN pip3 install pendulum service_identity