自己搭建Cloudfoundry使用cf logs 报permission denied解决方案

自己搭建CloudFoundry,一切就绪,cf push一个app测试一把,结果出错,想查原因,所以运行cf logs <app>命令,结果报错如下:

 

CFoundry::BadResponse: 500: Can't serve request due to error: open /home/vcap/var/warden/containers/179u5obpsru/tmp/rootfs/home/vcap/logs/env.log: permission denied

 

我进入warden中查看对应的env.log的owner,发现也是vcap的,很奇怪,为什么报权限错

 

后来一个前辈告诉我这是因为warden虚拟机中的vcap用户的uid与宿主机的vcap用户的uid不一致造成的,原因他没说……

 

然后我是这样解决的:

首先确定宿主机vcap用户的uid,我的是1001

每次warden创建Container的时候肯定都是新建vcap用户的,那我就进入warden的代码目录里去grep "useradd",还真让我找到了,位于:/path/to/cf-release/src/warden/warden/root/linux/skeleton/setup.sh,里边在创建vcap用户的时候确实指定了一个user_uid,这个变量是在19行的位置定义的,不管三七二十一,直接改成宿主机vcap用户的uid:1001

重启warden

 

-=update=-

 之前的解决方案是有问题的,换一个解决方案:http://qxh.iteye.com/blog/1985609

 

 

 

 

 

 

你可能感兴趣的:(CloudFoundry)