因此,我已经阅读了很多有关此问题的文章,但我从未设法解决。
我正在跟踪this tutorial来设置媒体服务器。
问题是,当我将卷安装到主机上不存在的不路径时,该目录及其中的所有文件都被创建为根目录。
我已按照安装后的说明进行操作:
sudo usermod -aG docker $USER
这是我的docker-compose示例:
medusa:
image: linuxserver/medusa
container_name: medusa
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
volumes:
- /home/myuser-ubuntu/docker/medusa/config:/config
- /home/myuser-ubuntu/media:/data
ports:
- 8081:8081
restart: unless-stopped
在Ubuntu Server 18.04上运行,当我以安装Ubuntu时创建的默认用户(myuser-ubuntu)登录时,看到带有“ id”命令的此结果:
uid=1000(myuser-ubuntu) gid=1000(myuser-ubuntu) groups=1000(myuser-ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),1001(docker)
此用户位于以下组:
myuser-ubuntu : myuser-ubuntu adm cdrom sudo dip plugdev lxd docker
问题是...我做了设法在运行HypriotOS的Raspberry Pi 3B上运行完全相同的设置。但是用户在该操作系统上的创建将用户添加到其他组。在这种情况下,所有目录和文件都是在myuser-pi用户和myuser-pi组下创建的。 (这就是我想要的)
以下是“ myuser-pi”所在的组:
myuser-pi : myuser-pi video users docker
以及HypriotOS上的“ id”命令的输出
uid=1000(myuser-pi) gid=1000(myuser-pi) groups=1000(myuser-pi),44(video),100(users),999(docker)
因此,我怀疑myuser-pi不属于“ myuser-ubuntu”之类的“ sudo”组这一事实与设置上的差异有关。
现在,如果我先创建所有目录和子目录,然后启动容器,则在其中创建的文件不属于root,而是属于“ myuser-ubuntu”,并且组“ docker”。
关于如何在Ubuntu上完成与HypriotOS上相同的事情的任何想法吗?
谢谢!
答案 0 :(得分:0)
不是美杜莎的专家,我看到它允许您传递您希望美杜莎用于创建文件的UID和GID。
对于不同操作系统上的不同安装,这些值可能会有所不同(因为Raspbian和Ubuntu有所不同)。我建议为每个安装使用GID和UID值创建一个docker compose .env
文件,并将您的compose文件定义为
medusa:
image: linuxserver/medusa
container_name: medusa
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TZ}
volumes:
- /home/myuser-ubuntu/docker/medusa/config:/config
- /home/myuser-ubuntu/media:/data
ports:
- 8081:8081
restart: unless-stopped
您的树莓派环境文件可能是
UID=1000
GID=1001
您的ubuntu安装可能会有不同的值。
有关docker的更多信息,请在此处撰写环境变量:https://docs.docker.com/compose/environment-variables/