1

Я пытаюсь создать Dockerfile. Но после выполнения я получаю эту ошибку:

Sending build context to Docker daemon  31.08MB
Step 1/5 : FROM davidrazd/discord-node-10
 ---> 0ad384ff6003
Step 2/5 : RUN apt-get update
 ---> Running in 9fb4313d8011
Reading package lists...
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
The command '/bin/sh -c apt-get update' returned a non-zero code: 100

Я также попытался поместить sudo в dockerfile, чтобы убедиться, что у меня есть полный доступ от имени root.

Dockerfile:

# Start writing your Dockerfile easily
FROM davidrazd/discord-node-10

RUN sudo apt-get update
RUN sudo apt-get install -y python-pip
RUN sudo install --upgrade pip

1 ответ1

1

Импортированное вами изображение содержит пользовательскую спецификацию:

USER container

apt-get update и apt-get install требуют root-доступа. В сборке Docker вы получаете root-доступ, выполняя команды контейнера от имени root, а не выполняя sudo. Следовательно, ваш dockerfile будет выглядеть так:

# Start writing your Dockerfile easily
FROM davidrazd/discord-node-10
USER root
RUN apt-get update \
 && apt-get install -y python-pip \
 && install --upgrade pip
USER container

Я бы рекомендовал прочитать следующее, прежде чем углубляться в написание ваших файлов Docker, поскольку есть другие проблемы, которые вы хотите решить с помощью команд apt-get (объединение команд в цепочку, удаление ввода из конфигурации, не установка рекомендуемых пакетов и очистка после команды установки): https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .