#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
) просто поврежден. Я могу воспроизвести ошибку.