我已经使用Wordpress创建了一个用于本地开发的docker-compose文件,终于使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-compose文件:
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"
答案 0 :(得分:2)
该错误由尝试更改所有者的tar命令报告。
为了避免tar设置所有者,您可以将变量TAR_OPTIONS
设置为--no-same-owner
来自tar manual:
-没有相同的所有者
自己提取文件(普通用户默认)。
您可以在您的码头工人,撰写文件,补充一点:
TAR_OPTIONS: --no-same-owner
答案 1 :(得分:0)
您遇到的问题是您正在使用用户权限而不是www-data
来装载本地卷。因此,www-data
无法更改用户拥有的文件的权限。要解决此问题,您应该可以执行chown 33:33 -R /Users/myuser/Sites/dockertest/wp-data/wp-content
。请记住,如果遇到诸如Permissions denied
之类的错误,请使用sudo
运行命令。
答案 2 :(得分:0)
首先,您可以尝试将 nocopy 的其他音量选项设置为 True 。
如果不工作,也许你检查组的 www数据的是一部分。 我认为,如果要将用户和组设置为 www-data ,请确保 www-data 与nfs共享文件夹属于同一组。
否则,最好使用有权访问nfs文件的本地用户和组。
APACHE_RUN_USER : local_user
APACHE_RUN_GROUP : local_group