【问题标题】:Alpine ERROR: unsatisfiable constraints: py3-pandas (missing):高山错误:不可满足的约束:py3-pandas(缺失):
【发布时间】:2021-03-15 05:46:39
【问题描述】:

我有以下dockerfile

FROM alpine:latest

ADD crontab.txt /crontab.txt
ADD  script.sh /script.sh
COPY entry.sh /entry.sh

ADD app /app 

RUN chmod 755 /script.sh /entry.sh
RUN /usr/bin/crontab /crontab.txt

# install dependencies
# the lapack package is only in the community repository
RUN echo "http://dl-8.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk update \
&& apk add --no-cache python3 py-pip py3-setuptools python-dev py3-lxml py3-requests  py3-numpy py3-cssselect py3-pandas

RUN apk --update add --no-cache \ 
lapack-dev \ 
gcc \
freetype-dev

# Install dependencies
RUN apk add --no-cache --virtual .build-deps \
gfortran \
musl-dev \
g++
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h

#RUN pip3 install cython
RUN pip3 install pymongo xlrd

CMD ["/entry.sh"]

当我尝试构建 dockerfile 时,收到错误消息,指出 py3-pandas (missing)

我想知道这是否是 Alpine 包管理问题。

【问题讨论】:

    标签: docker alpine


    【解决方案1】:

    我可以通过以下方式重现您的问题:

    FROM alpine:latest
    
    RUN echo "http://dl-8.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
        && apk update \
        && apk add --no-cache py3-pandas
    

    这里有一些cmets:

    • 如果您已经打算使用边缘/测试包存储库,那么您最好使用alpine:edge 映像,当然我不建议将其用于生产服务器
    • 使用apk 上的默认软件包存储库之外的另一个软件包存储库可以使用选项在一次运行的基础上完成
      -X, --repository REPO   Use packages from REPO
      
      来自apk --help
    • python-dev在edge/testing仓库中不存在,你应该使用python3-dev

    重要免责声明:此解决方案确实涉及使用测试存储库和 Alpine 的边缘滚动发布分支and is thus not recommended for production use


    所以,最后,您可以安装所有依赖项:

    FROM alpine:edge
    
    RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
            py-pip \
            py3-setuptools \
            python3-dev \
            py3-lxml \
            py3-requests  \
            py3-numpy \
            py3-cssselect \
            py3-pandas \
            lapack-dev \ 
            gcc \
            freetype-dev 
    

    请注意,我没有在此处添加构建依赖项,因为它们似乎与您手头的问题无关

    【讨论】:

      【解决方案2】:

      不要在 python 中使用高山图像;问题太多了。使用类似 python:slim-buster 的东西。然后,您可以通过以下方式安装您的要求:

      FROM python:3.8.4-slim-buster
      COPY ./requirements.txt /requirements.txt
      RUN pip install -r /requirements.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 2022-11-10
        • 1970-01-01
        • 2022-10-13
        相关资源
        最近更新 更多