【问题标题】:docker-compose with wp-cli and custom theme wrong permissiondocker-compose 与 wp-cli 和自定义主题错误权限
【发布时间】:2021-12-14 00:32:12
【问题描述】:

我在帖子末尾有 docker-compose 文件
在这个文件中,我创建了一个卷来链接自定义主题文件夹。
当我尝试在 CONTAINER - CLI 中运行 wp-cli 命令时,我遇到了权限问题,因为文件夹 wp-content 归根用户所有,并且容器运行为用户 xfs。
CONTAINER - WORDPRESS 中我们可以看到 wp-content 文件夹也归 root 所有。

CONTAINER - WORDPRESS CONTAINER - CLI

但是当我取消链接我的自定义主题文件夹时,此问题不再发生。
可以在 CONTAINER - CLI 中看到 wp-content 文件夹的所有者是 xfs,因为它是正确的,以及在 WORDPRESS - CONTAINER wp-content 文件夹也应该属于用户 www-data。

CONTAINER - WORDPRESS CONTAINER - CLI

这是我的 docker-compose.yml

version: "3.9"
    
services:
  wordpress:
    image: wordpress:5.2.1-php7.3
    environment:
      WORDPRESS_DB_HOST: database:3306
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
      WORDPRESS_DB_USER: ${MYSQL_USER}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
      WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX}
      WORDPRESS_DEBUG: ${WORDPRESS_DEBUG:-false}
    env_file: .env
    restart: always
    volumes:
      - ./wp:/var/www/html # Full wordpress project
      - ./theme:/var/www/html/wp-content/themes/custom-theme # Theme development
    ports:
      - ${WORDPRESS_PORT}:80
    depends_on:
      - database
  
  cli:
    image: wordpress:cli-2.3.0
    env_file: .env
    user: xfs
    depends_on:
      - database
      - wordpress
    volumes:
      - ./wp:/var/www/html
    
  database:
    image: mariadb:10.5.9
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    healthcheck:
      test: mysqladmin ping -h 127.0.0.1 -u root --password=${MYSQL_PASSWORD}
      interval: 5s
      retries: 5

  manage:
    image: phpmyadmin:5
    environment:
      PMA_HOST: database
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    ports:
      - ${MANAGE_PORT}:80
    restart: always
    depends_on:
      database:
        condition: service_healthy
     
volumes:
  db_data:
  wp_data:

【问题讨论】:

    标签: wordpress docker docker-compose


    【解决方案1】:

    我在 StackOverflow 上的 this answer 上发现您需要将 ./wp-content/:/var/www/html/wp-content/ 添加到卷中,因为:

    Docker 将任何命名卷默认为 root,因此通过绑定它删除了 root 所有者。

    【讨论】:

      猜你喜欢
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多