来自image python的Docker:3.6 apk-get not fount

问题描述 投票:-1回答:2

在我的docker roject中,我需要python:3.6图像(我不需要alpinr版本)。我的docker文件:

FROM python:3.6
EXPOSE 8000
RUN apk-get add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev
RUN apk-get update && apk-get add postgresql-dev gcc python3-dev musl-dev
...

但是当我建立图像时,我得到:

[步骤3/12:运行apk-get add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev--->在13913a86fd5e中运行/ bin / sh:1:apk-get:未找到

我也尝试了apk而不是apk-get,但结果没有改变

有人会问我如何在此python发行版上安装软件包?

非常感谢

python docker apk
2个回答
0
投票

如果dockerfile是

FROM python:3.6

然后让我们说构建命令是docker build -t python3.6 .。如果使用docker run --rm -it python3.6 /bin/bash登录到bash shell并运行cat /etc/issue,您会发现它正在运行Debian10。因此,您应该使用apt-getapt


0
投票

apk是alpine上的软件包管理器。 debian软件包管理器的名称为apt-get

[在docker文件中使用apt-get时,第一个调用应为apt-get update,因为docker映像没有本地缓存​​任何软件包库。

软件包名称在debian和alpine之间也不相同。总之,您的代码应类似于

FROM python:3.6-buster
RUN apt-get update \
    apt-get install -y \
        make linux-headers-amd64 libffi-dev libjpeg-dev libz-dev \
        postgresql-server-dev-11 gcc python3-dev musl-dev \
    && rm -rf /var/lib/apt/lists/*
© www.soinside.com 2019 - 2024. All rights reserved.