wordpress - 无法在 docker-compose 中添加对 docker volume 的写入权限

标签 wordpress docker permissions docker-compose volumes

问题

我的主要目标是在我的 linux 机器上创建一个 wordpress 容器,以便在该容器上进行开发。

因此,我正在为 pluginsthemes 文件夹创建新卷,甚至添加 read & write 权限,使用 :rw 选项。

但是,当我尝试在这些“卷”中创建新目录或文件时,我收到一条错误消息(尤其是在 VS Code 中),提示我没有添加权限这些卷。

此外,基于ll命令的权限显示所有者是唯一拥有w权限的人。这意味着我无法使用组 www-data 并将其添加到我的用户以编辑这些卷。

当我尝试运行 chmod 766 themes plugins 时,卷不再绑定(bind),因此此解决方案不起作用。

我搜索了整个网络(包括堆栈溢出),但没有一个答案对我有用,所以我迷路了:(

这里有一些可以帮助您找到解决方案的详细信息,包括 docker-compose.yml 文件。

详情

尝试添加名为 hello 的目录时 VS Code 出错

A system error occurred (EACCES: permission denied, mkdir '~/Workspace/WordpressProject/themes/hello')

在终端运行mkdir hello,返回这个错误

mkdir:无法创建目录“hello”:权限被拒绝

ll 卷的命令结果

drwxr-xr-x 2 www-data www-data 4096 Jun 14 23:54 plugins/
drwxr-xr-x 5 www-data www-data 4096 May 17 22:00 themes/

docker-compose.yml

version: '3'
services:
  wordpress:
    image: wordpress
    links:
      - mariadb:mysql
    environment:
      - WORDPRESS_DB_PASSWORD=${Database Name}
    ports:
      - "127.0.0.101:80:80"
    hostname: ${Wordpress Host}
    volumes:
      - ./plugins:/var/www/html/wp-content/plugins:rw
      - ./themes:/var/www/html/wp-content/themes:rw
    restart: always
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=${Password}
      - MYSQL_DATABASE=${Database Name}
    volumes:
      - ./database:/var/lib/mysql
    restart: always

版本

  • 操作系统: Ubuntu 18.04 LTS
  • Docker:v18.05.0-ce,API v1.37
  • 编辑器(Visual Studio Code): v1.23.1

最佳答案

请在VS终端执行:

sudo chown -R $USER <directory_project>

关于wordpress - 无法在 docker-compose 中添加对 docker volume 的写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866073/

相关文章:

mysql - 使用 Wordpress 从 docker 容器连接到 RDS Mysql

linux - Windows 主机与 Linux Docker 容器之间的通信

c - 在 shmget() C 中使用 IPC_CREAT 的数值等价物

c# - 单一方法的管理员权限

ruby-on-rails - 如何在不编写自定义博客应用程序的情况下快速将 Wordpress 博客添加到现有的 RoR 应用程序

php - 使用javascript获取 anchor 标记文本

docker - '--rm' 标志在做什么?

wordpress - 在 wordpress 站点中自定义属性

ajax - 令人困惑的 WP 页面加载与 AJAX

Kubernetes 服务账号默认权限