代码之家  ›  专栏  ›  技术社区  ›  Erik van de Ven

docker wordpress tar:<file>无法将所有权更改为uid 33,gid 33:不允许操作

  •  7
  • Erik van de Ven  · 技术社区  · 6 年前

    我已经使用WordPress为本地开发创建了一个Docker撰写文件,并且最终让NFS工作(由于Docker/Mac问题,正常的卷装载速度太慢)。

    除了我遇到一个新问题外,NFS共享(wp_content文件夹)中的所有文件都会出现这样的错误:

    tar: ./wp-content/themes/twentynineteen/archive.php: 
    Cannot change ownership to uid 33, gid 33: Operation not permitted
    

    我发现了这个问题 https://github.com/docker-library/wordpress/issues/137 他们所指的 https://github.com/docker-library/wordpress/pull/249 但是我还是不能让它工作。想知道是否有人能帮我,这是我的Docker撰写文件:

    version: '3.3'
    
    services:
      wordpress:
        image: wordpress:latest
        ports:
          - "80:80"
        restart: always
        volumes:
          - nfsmount:/var/www/html/wp-content
          - ./.htaccess:/var/www/html/.htaccess:cached
          - ./wp-data/wp-config.php:/var/www/html/wp-config.php:cached
          - ./logs/debug.log:/var/www/html/wp-content/debug.log
        environment:
          APACHE_RUN_USER: www-data
          APACHE_RUN_GROUP: www-data
    
    volumes:
      nfsmount:
        driver: local
        driver_opts:
          type: nfs
          o: addr=host.docker.internal,rw,nolock,hard,nointr,nfsvers=3
          device: ":/Users/myuser/Sites/dockertest/wp-data/wp-content" 
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   mpromonet    6 年前

    尝试更改所有者的tar命令报告错误。

    为了避免tar设置owner,可以设置变量 TAR_OPTIONS --no-same-owner
    tar manual :

    ——没有同样的主人
    将文件提取为自己(普通用户的默认值)。

    您可以在Docker撰写文件中添加以下内容:

      TAR_OPTIONS: --no-same-owner
    
        2
  •  0
  •   Alex Krantz    6 年前

    您遇到的问题是,您正在使用您的用户权限装载本地卷,而不是 www-data . 像这样的, 万维网数据 无法更改用户拥有的文件的权限。要解决这个问题,你应该能够做到 chown 33:33 -R /Users/myuser/Sites/dockertest/wp-data/wp-content . 记住,如果你得到并出错了 Permissions denied ,运行命令 sudo .

        3
  •  0
  •   pappachino    6 年前

    首先,您可以尝试设置 不拷贝 .

    如果这不起作用的话,也许你去检查一下小组 万维网数据 是其中的一部分。 我想如果你想把用户和组设置为 万维网数据 确保 万维网数据 与NFS共享文件夹属于同一组。

    否则,最好使用可以访问NFS文件的本地用户和组。

    APACHE_RUN_USER  : local_user
    APACHE_RUN_GROUP : local_group