Die*_*gos 8 python docker alpine-linux
我目前正在从Alpine:3.7构建图像。
我遇到两个问题:
我收到的错误是:
找不到满足设置工具要求的版本(来自版本:)找不到与安装工具匹配的发行版
注意:所有软件包都使用pip下载预先缓存在目录中。
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
....
Run Code Online (Sandbox Code Playgroud)
dev包,例如libffi-dev,libressl-dev等。
Nic*_*lay 17
我不确定要在问题中构建的开发包的完整列表,但应该是以下内容: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
Run Code Online (Sandbox Code Playgroud)
显然,在升级点时:
pip3 install --upgrade pip setuptools
Run Code Online (Sandbox Code Playgroud)
我删除了pip升级和安装工作。现在,我一直在研究在阿尔卑斯上升级pip的正确方法,并在执行此检查的github存储库中找到了一个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 && \
Run Code Online (Sandbox Code Playgroud)
通过在python和系统二进制文件的目录上执行符号链接,可以确保仅在调用pip命令时引用pip3。
| 归档时间: |
|
| 查看次数: |
20293 次 |
| 最近记录: |