在 python alpine docker 中安装 python numpy 模块
Installing python numpy module inside python alpine docker
我正在尝试对我的 python 应用程序进行 docker 化。错误显示在构建 Dockerfile 和安装 scikit-learn
的依赖项中,即。 numpy
.
Docker 文件
FROM python:alpine3.8
RUN apk update
RUN apk --no-cache add linux-headers gcc g++
COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5001
ENTRYPOINT [ "python" ]
CMD [ "main.py" ]
requirements.txt
scikit-learn==0.23.2
pandas==1.1.3
Flask==1.1.2
ERROR: Could not find a version that satisfies the requirement setuptools (from versions: none)
ERROR: No matching distribution found for setuptools
同意@senderle 的评论,Alpine 在这里不是最佳选择,特别是如果您打算使用依赖于 numpy 的科学 Python 包。如果你绝对需要使用 Alpine,你应该看看其他问题,比如 .
这里有一个建议,我也用 CMD
替换了 ENTRYPOINT
以便能够覆盖以方便调试(例如 运行 a shell).如果 ENTRYPOINT
是 python
,则无法覆盖它,并且您将无法 运行 除了 python
命令之外的任何其他内容。
FROM python:3.8-slim
COPY . /app
WORKDIR /app
RUN pip install --quiet --no-cache-dir -r requirements.txt
EXPOSE 5001
CMD ["python", "main.py"]
构建,运行,调试。
# build
$ docker build --rm -t my-app .
# run
docker run -it --rm my-app
# This is a test
# debug
$ docker run -it --rm my-app pip list
# Package Version
# --------------- -------
# click 7.1.2
# Flask 1.1.2
# itsdangerous 1.1.0
# Jinja2 2.11.2
# joblib 0.17.0
# MarkupSafe 1.1.1
# numpy 1.19.2
# pandas 1.1.3
# ...
我正在尝试对我的 python 应用程序进行 docker 化。错误显示在构建 Dockerfile 和安装 scikit-learn
的依赖项中,即。 numpy
.
Docker 文件
FROM python:alpine3.8
RUN apk update
RUN apk --no-cache add linux-headers gcc g++
COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5001
ENTRYPOINT [ "python" ]
CMD [ "main.py" ]
requirements.txt
scikit-learn==0.23.2
pandas==1.1.3
Flask==1.1.2
ERROR: Could not find a version that satisfies the requirement setuptools (from versions: none) ERROR: No matching distribution found for setuptools
同意@senderle 的评论,Alpine 在这里不是最佳选择,特别是如果您打算使用依赖于 numpy 的科学 Python 包。如果你绝对需要使用 Alpine,你应该看看其他问题,比如
这里有一个建议,我也用 CMD
替换了 ENTRYPOINT
以便能够覆盖以方便调试(例如 运行 a shell).如果 ENTRYPOINT
是 python
,则无法覆盖它,并且您将无法 运行 除了 python
命令之外的任何其他内容。
FROM python:3.8-slim
COPY . /app
WORKDIR /app
RUN pip install --quiet --no-cache-dir -r requirements.txt
EXPOSE 5001
CMD ["python", "main.py"]
构建,运行,调试。
# build
$ docker build --rm -t my-app .
# run
docker run -it --rm my-app
# This is a test
# debug
$ docker run -it --rm my-app pip list
# Package Version
# --------------- -------
# click 7.1.2
# Flask 1.1.2
# itsdangerous 1.1.0
# Jinja2 2.11.2
# joblib 0.17.0
# MarkupSafe 1.1.1
# numpy 1.19.2
# pandas 1.1.3
# ...