-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
file_put_contents(/xxx/config/.config.json): failed to open stream: Permission denied #44
Comments
权限问题,请保持以下三个相同,就没问题了
|
@xiebruce 再请教下,docker容器内运行时,每个容器的用户和组都是各自容器内的,例如php-fpm是容器php的用户组www-data,nginx是容器nginx的用户组nginx,PicUploader是宿主机的用户组为apprun,这三个感觉没法统一,有其他方法吗 |
@ncepuwanghui php-fpm和nginx都是可以修改配置文件来修改运行的用户和组的,把php-fpm和nginx的运行用户组修改成PicUploader所属用户组,即 docker的 docker的 而宿主机的PicUploader所属用户和组都是 |
@xiebruce 我试了好像不行,因为容器内的用户和组是容器镜像中的/etc/passwd和/etc/group,不是宿主机的/etc/passwd,可以基于官方镜像在自定义Dockfile中使用useradd增加用户,但也只能保证名字一样,uid和gid是不同的。 |
@ncepuwanghui 那你看看宿主机的用户的uid和gid,然后在容器里删掉已存在的用户和组,再重新创建,先创建组,并且在创建时指定gid为宿主机PicUploader所属组的gid,然后再创建用户,并指定用户id为宿主机PicUploader所属用户的uid,指定所属组的gid为宿主机PicUploader所属组的gid,这样应该是可以的。 先在外部宿主机查看apprun用户的uid和gid,假设uid=1001和gid=1001 id apprun 然后在容器里创建组,注意用 groupadd -g 1001 apprun 然后再在容器里创建用户(使用 useradd -u 1001 -g apprun apprun |
docker 部署nginx+php-fpm时,打开dashboard出现”file_put_contents(/xxx/config/.config.json): failed to open stream: Permission denied“,无法保存配置,点击保存无响应。
docker run加了
--privileged=true
参数也不行The text was updated successfully, but these errors were encountered: