Как изменить разрешение на файл в Dockerfile? - PullRequest
0 голосов
/ 08 мая 2019

У меня есть следующий Dockerfile:

FROM sonarqube

ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
RUN chmod +r /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/

И я получаю следующую ошибку:

Step 3/3 : RUN chmod +x /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/
 ---> Running in 0fd0abc88b73
chown: changing ownership of '/opt/sonarqube/extensions/plugins/sonar-gitlab-plugin-4.0.0.jar': Operation not permitted
The command '/bin/sh -c chmod +x /opt/sonarqube/extensions/plugins/ && chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/' returned a non-zero code: 1

Если я делаю:

FROM sonarqube


ADD https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar /opt/sonarqube/extensions/plugins/
RUN sudo chmod +r /opt/sonarqube/extensions/plugins/ && sudo chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/

Я получаюследующая ошибка:

Step 3/3 : RUN sudo chmod +x /opt/sonarqube/extensions/plugins/ && sudo chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/
 ---> Running in c7dc030ea2ac
/bin/sh: 1: sudo: not found
The command '/bin/sh -c sudo chmod +x /opt/sonarqube/extensions/plugins/ && sudo chown -R sonarqube.sonarqube /opt/sonarqube/extensions/plugins/' returned a non-zero code: 127

Как изменить разрешение файла в Dockerfile?

Ответы [ 2 ]

3 голосов
/ 08 мая 2019

chmod +r /opt/sonarqube/extensions/plugins/ выдает ошибку, поскольку контейнер sonarqube запускается от имени пользователя sonarqube (см. Команду USER sonarqube в файле Docker: https://github.com/SonarSource/docker-sonarqube/blob/master/7.7-community/Dockerfile)

sudo не установлен в образе, поэтому вы не сможете запускать команды с sudo. Вместо этого, как упоминает М. Алексеев, измените пользователя на root и выполните свои собственные команды.

USER root
RUN ...
RUN ...

# switch back to user sonarqube for security
USER sonarqube

Я бы рекомендовал вернуться к пользователю sonarqube после установки пользовательских пакетов и т. Д.

Обратите внимание, что вам может потребоваться установить права доступа к файлам, созданным пользователем root.

1 голос
/ 08 мая 2019

Вместо использования sudo, если вы хотите запустить команду от имени пользователя root, используйте строку USER root, чтобы переключиться на root и затем выполнить ваши команды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...