如何在 Dockerfile 中更改文件权限?

3

I have the following 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个回答

8

chmod +r /opt/sonarqube/extensions/plugins/命令会抛出错误,因为SonarQube容器以sonarqube用户身份运行(请参见Dockerfile中的USER sonarqube命令:https://github.com/SonarSource/docker-sonarqube/blob/master/7.7-community/Dockerfile)。

镜像中未安装sudo命令,因此您将无法使用sudo命令运行其他命令。相反,如M.Alekseev所提到的,将用户更改为root并运行自定义命令。

USER root
RUN ...
RUN ...

# switch back to user sonarqube for security
USER sonarqube

在安装自定义软件包等操作后,我建议切换回用户sonarqube

请注意,在此过程中您可能需要为由root用户创建的文件设置权限。


1

如果您想以root用户身份运行命令,不要使用sudo,而是使用USER root命令切换到root用户,然后执行您的命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接