来自图像python的Docker:3.6 apk get not fount
在我的docker项目中,我需要python:3.6映像(我不需要alpinr版本)。 我的docker文件:来自图像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 ... 但当我建
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。包管理器在那里是不同的,当然有不同的命令参数。