在很多官方镜像中,为了安全,都会将用户进行限定,而不是缺省使用root。比如Jenkins的官方镜像,docker exec进去之后的用户就是jenkins,但是偶尔有需要在运行态以root权限修改当前容器设置的需求时,可使用-u选项来解决这个问题。
问题描述
以Jenkins的alpine的lts容器为例,进行说明。在官方Alpine的Jenkins镜像中安装NodeJS插件,然后创建一个Free Style 的Job,在此Job中执行node -v和npm -v执行版本的确认,发现无法正常动作,日志输出信息如下:
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/nodejs-freestyle-job
Unpacking https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gz to /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs10.15.3 on Jenkins
[nodejs-freestyle-job] $ /bin/sh -xe /tmp/jenkins5559044380616609516.sh
+ npm -v
env: ‘node’: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
详细的问题现象和原因说明请参看:
*
问题对应方法
想定的对应方法&#x