Мой 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?
используйте 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
Это не имеет ничего общего с вашим заявлением 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
, если хотите.
Вы запускали команду
docker
какsudo
?