我正在尝试在docker-compose中安装一个卷以Apache镜像。问题是,我的docker中的apache运行在,www-data:www- data但是挂载的目录在之下创建root:root。如何指定挂载目录的用户?
www-data:www- data
root:root
我试图运行命令setupApacheRights.sh。chown -R www-data:www-data /var/www但它说chown: changing ownership of '/var/www/somefile': Permission denied
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 :
www-data
$ docker exec DOCKER_CONTAINER_ID id uid=100(www-data) gid=101(www-data) groups=101(www-data)
然后,在您的Docker主机上,使用uid(在本示例中为100)更改已安装目录的所有者:
chown -R 100 ./
如果您正在使用docker-compose,则最好这样做:
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到标准输出。
-u
uid