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

Мой 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?

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

Orestis Zekai 09.04.2019 11:27

используйте sudo - та же ошибка: [root@tan-test-1 opt]# cat Dockerfile FROM percona/percona-xtradb-cluster-operator:0.3.0-proxysql USER root RUN /usr/bin/sudo ln -sf /usr /share/zoneinfo/Азия/Шанхай /etc/localtime

lklkxcxc 09.04.2019 11:33
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
2
721
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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) просто сломано. Я могу воспроизвести ошибку.

Ответ принят как подходящий

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

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

Другие вопросы по теме