Alpine ERROR: unsatisfiable constraints: py3-pandas (missing):

Alpine ERROR: unsatisfiable constraints: py3-pandas (missing):

我有以下 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 包管理问题。

不要为 python 使用高山图像;问题太多了。使用类似 python:slim-buster 的东西。然后您可以使用以下命令安装您的要求:

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

我可以重现您的问题:

FROM alpine:latest

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

这里有一些评论:

  • 如果您已经打算使用 edge/testing 软件包存储库,那么您最好使用 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 

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