Linux 图像处理管道中已装入卷的文件权限?

Linux 图像处理管道中已装入卷的文件权限?,linux,docker,sudo,Linux,Docker,Sudo,我们正在使用docker将一些图像处理管道封装起来,以便更容易与合作者共享 我们目前使用的方法是挂载一个“inputs”目录(其中包含一个图像,即单个jpg)和一个“outputs”目录(其中包含已处理的数据,即可能是输入图像的分段)。我们遇到的问题是,我们使用sudo运行docker,处理完成后,outputs目录中的文件具有root权限 是否有一种标准或首选方法来设置装入卷中的文件,使其具有调用用户的权限?尝试在Dockerfile中设置用户,以便在启动容器时使用“tomcat”等 # ex

我们正在使用docker将一些图像处理管道封装起来,以便更容易与合作者共享

我们目前使用的方法是挂载一个“inputs”目录(其中包含一个图像,即单个jpg)和一个“outputs”目录(其中包含已处理的数据,即可能是输入图像的分段)。我们遇到的问题是,我们使用sudo运行docker,处理完成后,outputs目录中的文件具有root权限


是否有一种标准或首选方法来设置装入卷中的文件,使其具有调用用户的权限?

尝试在Dockerfile中设置用户,以便在启动容器时使用“tomcat”等

# example
USER tomcat
也许您可以在
docker run

e、 g

docker运行——用户$UID[其他标志…]image[cmd]

或者,以下方法可能有效(未经测试)

在Dockerfile中

入口点“su$USERID-c”

其次是:`

docker run-e USERID=$UID[其他标志…]image[cmd]

您是在docker映像内还是在主机外部装载目录,并使用-v选项将其传入?@Matt我们使用
-v
选项将其传入。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。这不会起作用,因为不同的用户可以调用脚本在他们的计算机上运行。权限应该是调用脚本的用户。假设您正在使用docker简单地复制一个文件。如果将“输入”目录与文件一起装入,并装入“输出”,如果docker复制了该文件,“输出”目录中的文件将具有根权限,而不是调用docker的用户。@Justin-docker容器中的进程将尝试以tomcat用户的身份运行。但是如果tomcat用户不存在,我不确定会发生什么,也许它将保留为root用户。最好在Dockerfile中使用UserID。不管怎样,这都不能满足你的要求。我会调查的!我开始使用
--user$(id-u):$(id-g)
,我对此很满意