无法通过正则表达式在 python:3.8.3 docker 图像中找到任何包

Couldn't find any package by regex in python:3.8.3 docker image

我是 docker 的新手,我创建了一个 docker 图像,这就是我的 docker 文件的样子。

FROM python:3.8.3

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    postgresql-client \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get install -y gcc libtool-ltdl-devel xmlsec1-1.2.20 xmlsec1-devel-1.2.20 xmlsec1 openssl- 
    1.2.20 xmlsec1-openssl-devel-1.2.20 \
    && apt-get -y install curl gnupg \
    && curl -sL https://deb.nodesource.com/setup_14.x  | bash - \
    && apt-get -y install nodejs 

WORKDIR /app/

COPY . /app

RUN pip install -r production_requirements.txt \
    && front_end/noa-frontend/npm install

此图像用于docker-compose.yml的应用程序服务。因此,当我 运行 docker-compose 构建时,我收到以下错误消息,提示找不到包。这些是我想要安装的几个依赖项,以便安装 python 包。

一开始,我运行 apt-get update 来更新包列表。

谁能帮我解决这个问题。

已更新 Dockerfile

FROM python:3.8.3

RUN apt-get update 
RUN apt-get install -y postgresql-client\
    && apt-get install -y gcc libtool-ltdl-devel xmlsec1-1.2.20 xmlsec1- 
    devel-1.2.20 xmlsec1 openssl-1.2.20 xmlsec1-openssl-devel-1.2.20 \
    && apt-get -y install curl gnupg \
    && curl -sL https://deb.nodesource.com/setup_14.x  | bash - \
    && apt-get -y install nodejs

WORKDIR /app/

COPY . /app

RUN pip install -r production_requirements.txt \
    && front_end/noa-frontend/npm install

指令rm -rf /var/lib/apt/lists/*或多或少否定了apt-get update。此后,APT 不再能够访问可用软件包列表。将 rm 移到最后(也许考虑使用更安全的 apt-get clean all)。

您正在尝试在执行 rm -rf /var/lib/apt/lists/* 后使用 apt-get install。那保证不会有好下场。最初尝试删除 rm 命令以查看是否有帮助。如果您确实需要减小图像的大小,请将 rm 命令作为 运行 语句中的最后一个命令。

如果您真的想减小图片大小,请尝试切换为使用 python:3.8-slimpython:3.8-alpine。 Alpine 与默认值 Ubuntu 不同 OS,但它的包管理器可以被告知不要在本地缓存文件。例如

FROM python:3.8-alpine

RUN apk add --no-cache postgresql-client
RUN apk add --no-cache gcc libtool-ltdl-devel xmlsec1-1.2.20 xmlsec1-devel-1.2.20 xmlsec1 \
    openssl-1.2.20 xmlsec1-openssl-devel-1.2.20
RUN apk add --no-cache curl gnupg
RUN apk add --no-cache  nodejs 
RUN curl -sL https://deb.nodesource.com/setup_14.x  | bash -


WORKDIR /app/

COPY . /app

RUN pip install -r production_requirements.txt \
    && front_end/noa-frontend/npm install

某些软件可能以不同的软件包名称提供,因此您必须检查一下。