Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自图像python的Docker:3.6 apk get not fount_Python_Docker_Apk - Fatal编程技术网

来自图像python的Docker:3.6 apk get not fount

来自图像python的Docker:3.6 apk get not fount,python,docker,apk,Python,Docker,Apk,在我的docker项目中,我需要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 ... 但当我建

在我的docker项目中,我需要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——无缓存生成linux头libffi dev jpeg dev zlib dev --->在13913a86fd5e中运行 /bin/sh:1:apk get:未找到

我也尝试用apk代替apk get,但结果不变

有人可以问我如何在这个python发行版上安装软件包

如果dockerfile是

FROM python:3.6

然后让我们假设build命令是
dockerbuild-tpython3.6.
。如果您使用
docker run--rm-it python3.6/bin/bash
登录bash shell并运行
cat/etc/issue
,您将发现它正在运行Debian 10。因此,您应该使用
apt-get
apt

apk
作为alpine上的包管理器。debian包管理器的名称为

在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/*

这不容易吗?(注意apt中的T)将apk get替换为apt get,或者只有APIF图像基于Ubuntu-使用apt/apt get,如果是Alpine-使用apk。包管理器在那里是不同的,当然有不同的命令参数。