Докер из образа python: 3.6 apk-get not fount - PullRequest
0 голосов
/ 26 октября 2019

В моем проекте 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: RUN apk-get add --no-cache make linux-headerslibffi-dev jpeg-dev zlib-dev ---> работает в 13913a86fd5e / bin / sh: 1: apk-get: not found

я также пытаюсь использовать apk вместо apk-get, но результатне меняйте

Кто-то может спросить меня, как установить пакеты в этом дистрибутиве Python?

Заранее большое спасибо

Ответы [ 2 ]

1 голос
/ 26 октября 2019

apk - менеджер пакетов на alpine. Менеджер пакетов debian имеет имя ap t -get .

При использовании apt-get в файле Docker первый вызов должен быть apt-get update, так какОбразы докера не имеют локально кэшированных библиотек пакетов.

Имена пакетов также не идентичны для 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/*
0 голосов
/ 26 октября 2019

Если dockerfile равен

FROM python:3.6

, допустим, команда build равна docker build -t python3.6 .. Если вы войдете в bash shell, используя docker run --rm -it python3.6 /bin/bash и запустив cat /etc/issue, вы обнаружите, что он работает под Debian 10. Таким образом, вы должны использовать apt-get или apt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...