docker/wordpress/docker-compose 对尝试安装主题和插件的绑定安装卷的权限

How*_*ows 6 permissions wordpress plugins themes docker

我在 Mac 上的绑定安装卷上遇到权限问题(或者看起来如此),这阻止了主题和插件的安装。我正在使用 docker-compose 来创建我的容器,如下所示。

  wordpress:
    depends_on:
      - db
    image: wordpress
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: *****
      WORDPRESS_DB_NAME: wordpress
    working_dir: /var/www/html
    volumes:
      - ./wp-content:/var/www/html/wp-content
Run Code Online (Sandbox Code Playgroud)

创建容器没有问题。在我的主机 mac 上,wp-content目录创建得很好并且填充正确。我可以连接到我的容器(使用docker exec),看看已安装的卷容量默认权限drwxr-xr-x 1 1000 staff 160 Aug 14 23:04 wp-content每当我试图安装一个主题或插件,它提示FTP凭据,或者如果我添加define('FS_METHOD', 'direct')wp-config.php失败,“无法创建目录”。我也试着制作权限,wp-config从我的主机与主机敞开chmod -R 777 wp-content,并改变所有权从与容器chown -r www-data:www-data wp-content。启用调试不会debug.logwp-content. 我还尝试使用user: "1000:1000"和/或environment: APACHE_RUN_USER/APACHE_RUN_GROUP按照https://github.com/docker-library/wordpress/pull/249以用户 1000 身份运行 apache. 似乎没有任何区别,我不知道接下来要尝试什么。我怀疑这真的很简单,但已经用尽了我能找到的一切。任何提示或帮助将不胜感激。我只是想进行一些基本的插件开发,并希望在wp-content本地进行编辑。

小智 0

我认为你需要从你的 WordPress 安装的根目录中创建音量。这是我的 docker-compose.yml 文件

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpassword
       MYSQL_DATABASE: dbname
       MYSQL_USER: dbuser
       MYSQL_PASSWORD: dbpassword

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - wp_data:/var/www/html
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: dbuser
       WORDPRESS_DB_PASSWORD: dbpassword
       WORDPRESS_DB_NAME: dbname

volumes:
    db_data: {}
    wp_data:
      driver: local
      driver_opts:
        type: none
        o: bind
        device: /var/www/html/
Run Code Online (Sandbox Code Playgroud)