Не удалось найти какой-либо пакет по регулярному выражению в python: 3.8.3 docker изображении - PullRequest
1 голос
/ 28 мая 2020

Я новичок в 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.

enter image description here

Вначале я запустил apt -получить обновление для обновления списков пакетов.

Может ли кто-нибудь помочь мне с этой проблемой.

Обновленный файл Docker

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

Ответы [ 2 ]

3 голосов
/ 28 мая 2020

Вы пытаетесь использовать apt-get install после выполнения rm -rf /var/lib/apt/lists/*. Это гарантированно не закончится хорошо. Попробуйте сначала удалить команду rm, чтобы узнать, поможет ли это. Если вам действительно нужно уменьшить размер изображения, поместите команду rm как самую последнюю команду в операторе run.

Если вы действительно хотите уменьшить размер изображения, попробуйте переключиться на использование python:3.8-slim или 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

Некоторые части программного обеспечения могут быть доступны под разными именами пакетов, поэтому вам придется это проверить.

3 голосов
/ 28 мая 2020

Инструкция rm -rf /var/lib/apt/lists/* более или менее отрицает apt-get update. После этого APT больше не сможет получить доступ к списку доступных пакетов. Переместите rm в конец (и, возможно, подумайте об использовании более безопасного apt-get clean all).

...