在python:3.8.3 docker映像中找不到任何由正则表达式生成的包

2024-06-17 13:06:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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包,我想安装几个依赖项

enter image description here

首先,我运行了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

Tags: installdockerrunfrom图像clientappget
2条回答

指令rm -rf /var/lib/apt/lists/*或多或少是否定的apt-get update。此后,APT无法再访问可用软件包列表。将^ {< CD3> }移动到末尾(也许可以考虑使用更安全的^ {< CD4}})。p>

在执行rm -rf /var/lib/apt/lists/*之后,您正在尝试使用apt-get install。这肯定不会有好的结局。首先尝试删除rm命令,看看这是否有帮助。如果确实需要减小图像的大小,那么将rm命令作为run语句中的最后一个命令

如果您确实想减小图像大小,请尝试切换到使用python:3.8-slimpython:3.8-alpine。Alpine与Ubuntu的默认操作系统不同,但它的包管理器可以被告知不要在本地缓存文件。例如

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

某些软件可能以不同的软件包名称提供,因此您必须对此进行检查

相关问题 更多 >