构建 Docker 时出错:“包 'mongodb' 没有安装 csndidate”与 python:3.7 图像
Posted
技术标签:
【中文标题】构建 Docker 时出错:“包 \'mongodb\' 没有安装 csndidate”与 python:3.7 图像【英文标题】:Error while building Docker: "Package 'mongodb' has no installation csndidate" with python:3.7 image构建 Docker 时出错:“包 'mongodb' 没有安装 csndidate”与 python:3.7 图像 【发布时间】:2022-01-08 21:43:21 【问题描述】:我正在尝试使用 docker compose 构建此 docker 映像:
FROM python:3.7-slim
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y \
build-essential \
make \
gcc \
python3-dev \
mongodb
# Create working directory and copy all files
COPY . /app
WORKDIR /app
# Pip install requirements
RUN pip install --user -r requirements.txt
# Port to expose
EXPOSE 8000
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python", "main.py", "runserver"]
但我收到此错误:
Package 'mongodb' has no installation candidate
当我使用 python:3.4-slim
运行相同的 docker 映像时,它可以工作。为什么?
【问题讨论】:
【参考方案1】:那是因为 python:3.4-slim
使用 Debian stretch (9) 作为其基础,而 mongodb
软件包在其存储库中可用。但是对于python:3.7-slim
,基础是靶心(11)并且mongodb不再在它的repos中。
我建议不要在上面构建的映像中安装 mongodb,而是使用单独的 mongodb 容器。
【讨论】:
谢谢。是的,无论如何我都使用了不同的图像,这就是容器化的重点,但我试图理解它失败的原因以上是关于构建 Docker 时出错:“包 'mongodb' 没有安装 csndidate”与 python:3.7 图像的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 上构建 vue/quasar 应用程序时出错
使用 docker-compose 在 Windows 上构建气流时出错
docker在alpine linux中构建python django应用程序时出错
为 caffe 构建 GPU docker 映像时出错:不支持的 gpu 架构“compute_60”
尝试使用 docker 构建 vue/quasar/node 应用程序时出错:“命令 '/bin/sh -c quasar build' 返回非零代码:1”