#python #django #docker #dockerfile
Вопрос:
Я пытаюсь создать и запустить образ djanog с помощью docker, чтобы развернуть его вместе с kubernetes, но когда я запускаю команду сборки образа, она выдает ошибку «/bin/sh: 1: apk: не найден».
Докерфайл:
FROM python:3.8-slim
LABEL maintainer="r.ofc@hotmail.com"
ENV PROJECT_ROOT /app
WORKDIR $PROJECT_ROOT
RUN apk update
amp;amp; apk add mariadb-dev
gcc
python3-dev
pango-dev
cairo-dev
libtool
linux-headers
musl-dev
libffi-dev
openssl-dev
jpeg-dev
zlib-dev
RUN pip install --upgrade pip
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD python manage.py runserver 0.0.0.0:8000
кто-нибудь может мне помочь?
Комментарии:
1.
-slim
Изображения используютapt
AFAIR.2. Привет, я пытаюсь, но не могу. возвращаемая ошибка: ПРЕДУПРЕЖДЕНИЕ: apt не имеет стабильного интерфейса командной строки. Используйте с осторожностью в сценариях. E: Недопустимая операция добавить
Ответ №1:
Он python:3.8-slim
основан на Debian, который использует менеджер пакетов apt, а не apk.
Вы можете изменить версию изображения:
FROM python:3.8-alpine
и это должно работать нормально.
Другое решение-сохранить python:3.8-slim
изображение, но переключиться на apt:
RUN apt update
amp;amp; apt install -y libmariadb-dev
gcc
python3-dev
libcogl-pango-dev
libcairo2-dev
libtool
linux-headers-amd64
musl-dev
libffi-dev
libssl-dev
libjpeg-dev
zlib1g-dev
Я обновил имена пакетов, потому что они не совпадают в Debian.
Комментарии:
1. спасибо вам за вашу помощь, появились пакеты, которые находятся в ошибке, я буду искать обновленные пакеты
2. Нет проблем, я не знаю, видели ли вы это , но я обновил свой ответ, вы можете просто сохранить свой исходный файл Dockerfile
apk add
и переключить версию образа наpython:3.8-alpine
, это может быть проще, чем изменить все пакеты в соответствии с версией debian.3. и действительно, если произошла ошибка dns, я проверю, что может быть