Jenkins 安装在 Ubuntu 18.04 上并成功运行。
作为项目构建过程的一部分,我们需要将构建的文件复制到/var/www/html
(Apache 文件夹)下的特定文件夹。我们的构建/执行 shell:
npm install
ng build --prod
cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/* /var/www/html/kagi-core/
但是 jenkins build 在最后的复制命令中失败,出现以下错误:
23:18:10 + cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/3rdpartylicenses.txt /var/lib/jenkins/workspace/kagi-core/dist/core/assets ...
23:18:10 cp: cannot create regular file '/var/www/html/kagi-core/3rdpartylicenses.txt': Permission denied
...
...
以下是我们迄今为止所做/尝试的事情:
将“jenkins”用户添加到 root 和 ubuntu 组。
ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins jenkins : jenkins root ubuntu
将 /var/www/html/kagi-core 文件夹的权限更改为“jenkins”用户
drwxr-xr-x 3 ubuntu jenkins 4096 Sep 17 21:36 www .. drwxr-xr-x 3 ubuntu jenkins 4096 Sep 18 21:04 html .. drwxrwxrwx 4 ubuntu jenkins 4096 Sep 18 21:18 kagi-core
我们遗漏了什么?感谢任何帮助!
答案1
在尝试修复此问题时,找到了解决方案。在此添加以供参考:
仔细观察,文件夹的权限/var/www
如下
drwxr-xr-x 3 ubuntu jenkins 4096 Sep 17 21:36 www
但相反,它们应该反过来(允许“jenkins”用户进入默认组):
drwxr-xr-x 3 jenkins ubuntu 4096 Sep 17 21:36 www
我们还将组重置为默认值root
因此解决问题的命令是
cd /var
sudo chown -R jenkins:root www/
此后,jenkins 构建成功(能够复制到文件/var/www/html
夹)。