Docker-compose在安装的卷上设置用户和组
我正在尝试在docker-compose中将一个卷装入到apache映像中。 问题是,我的泊坞窗中的apache在www-data:www-data
下运行,但挂载的目录是在root:root
下创build的。 我如何指定挂载目录的用户?
我试图运行命令setupApacheRights.sh
。 chown -R www-data:www-data /var/www
但是它说chown: changing ownership of '/var/www/somefile': Permission denied
services: httpd: image: apache-image ports: - "80:80" volumes: - "./:/var/www/app" links: - redis command: /setupApacheRights.sh
我希望能够指定它将被安装的用户。 有没有办法?
首先确定www-data
用户的uid:
$ docker exec DOCKER_IMAGE_ID id uid=100(www-data) gid=101(www-data) groups=101(www-data)
然后,在本地机器上,使用uid(本例中为100)更改挂载目录的所有者:
chown -R 100 ./
dynamic扩展
如果你使用的是docker-compose
你可以像这样去做:
$ docker-compose exec SERVICE_NAME id uid=100(www-data) gid=101(www-data) groups=101(www-data) $ chown -R 100 ./
你可以把它放在一个单线上:
$ chown -r $(docker-compose exec SERVICE_NAME id -u) ./
-u
标志只会将uid
打印到标准输出。