python - 在 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
解决方案
apt-get install
你在做之后尝试使用rm -rf /var/lib/apt/lists/*
。保证不会有好的结局。最初尝试删除该rm
命令以查看是否有帮助。如果您确实需要减小图像的大小,则将该rm
命令作为运行语句中的最后一个命令。
如果您真的想减小图像大小,请尝试切换到使用python:3.8-slim
or python: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
某些软件可能以不同的软件包名称提供,因此您必须检查一下。
推荐阅读
- excel - 带有输入的 VBA VlookUp 无法获取结果,是代码错误还是数据类型不匹配?
- c# - 如何在 ASP.NET Core 依赖注入中注册具体类的字符串依赖?
- google-analytics - 如何更新谷歌分析中的交易?
- javascript - 有没有办法在网页中显示 cookie?
- discord.js - 错误“fn 不是函数”(discord.js 机器人)
- c# - 在 .NET Core 中使用 System.Management 获取 UUID
- python - 将两个 CSV 转换为一个 json
- android - 如何在 linphone 4.3.0 new SDK for android 中启用 G729 音频编解码器?
- swift - SwiftUI TapGesture onStart / TouchDown
- android - BLE readCharacteristic(characteristic) 返回 false (Accu Check Instant Gluco Meter)