создать отчет образа «должен быть root», когда я использую пользователя root в Dockerfile

#docker

#docker

Вопрос:

Мой Dockerfile выглядит следующим образом:

 FROM percona/percona-xtradb-cluster-operator:0.3.0-proxysql
USER root
RUN chmod 0777 /var/lib/rpm/.dbenv.lock
  

Когда я запускаю docker build это вывод:

 Sending build context to Docker daemon  128.9MB
Step 1/4 : FROM percona/percona-xtradb-cluster-operator:0.3.0-proxysql
# Executing 1 build trigger
 ---> Running in 5a04ebd04891
Loaded plugins: fastestmirror, ovl
ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/.dbenv.lock'
You need to be root to perform this command.
  

Почему он говорит, You need to be root хотя я устанавливаю USER root в Dockerfile?

Комментарии:

1. Вы запускали docker команду как sudo ?

2. использование sudo вызывает ту же ошибку: [root @tan-test-1 opt]# cat Dockerfile ИЗ percona / percona-xtradb-cluster-operator:0.3.0-пользователь proxysql root ЗАПУСКАЕТ / usr/ bin / sudo ln -sf / usr / share / zoneinfo / Asia / Shanghai / etc / localtime

Ответ №1:

Родительский образ может содержать ONBUILD инструкцию, которая БУДЕТ выполняться в контексте пользователя, заданном USER командой в родительском образе. К сожалению, вы ничего не можете с этим поделать.

Вы можете попытаться создать percona-xtradb-cluster-operator:0.3.0 образ docker, клонировав репозиторий percona-xtradb-cluster-operator и изменив файл Dockerfile в build папке. Вы можете изменить USER root , если хотите.

Ответ №2:

Это не имеет никакого отношения к вашему USER root заявлению в Dockerfile. Сборка завершается неудачно на шаге 1 (см. Выходные данные -> Step 1/4 : ), даже если вы измените свой Dockerfile на однострочный:

FROM percona/percona-xtradb-cluster-operator:0.3.0-proxysql

вы получите ту же ошибку. Итак, для меня это выглядит так, как будто базовый образ ( percona/percona-xtradb-cluster-operator:0.3.0-proxysql ) просто поврежден. Я могу воспроизвести ошибку.