我正在尝试使用给定用户运行带有自定义映像的 Docker 容器。我有一个entrypoint.sh, 可以根据 Docker 命令行提供的环境变量更改运行用户,-e USER=myuser.
我在主机上有完全相同的用户。这可以在不同的主机上完成,并且我可以确保该用户存在于我们使用的任何主机中。但我遇到了麻烦,因为我无法确保该用户的数字 ID 始终相同(例如 1001)。在 Docker 容器执行命令行中,我使用 挂载了一些本地文件夹-v <src>:<tgt>,容器中的应用程序在中创建了其他文件夹和文件<tgt>。
问题是,虽然主机和容器中的用户具有相同的名称(例如myuser),但它的数字 id 可以更改(例如5000在主机和容器中)1001容器中),因此在读取下面的文件和文件夹时会遇到问题挂载的路径。
确保在执行时主机和正在运行的容器中的用户名和用户 ID 相同的最佳解决方案是什么?
编辑
我发现我根本没有解释自己,而且把事情搞混了。我将尝试再次解释我的问题:
我确实创建了一个基于 Linux 的映像,在该映像中我: a) 安装了一组软件包root;b) 创建某个用户myuser,并USER <usr>在 Dockerfile 中切换到该用户;c) 以用户身份复制我自己的软件并安装在映像中myuser,并且该软件必须由该用户执行。
myuser我在另一台机器上创建了完全相同的用户
myuser在另一台计算机中从此映像启动一个容器,并与该容器共享主机文件系统中的一些文件夹(由用户拥有)。
myuser出现该问题的原因是,执行容器时,Docker 映像中用户的数字 id为 1001,而其他主机中的数字 id 为 5000。
一种解决方案是在任何主机上创建用户时强制数字 ID 相同。问题是我不能确定这在运行图像的主机中总是可能的。
是否可以在QGroupBox标题中添加图标(以编程方式,通过QtCreator,有或没有样式表)?
我想在我的GUI中放置一些标记靠近一些QGroupBox的标题.最好的位置是标题的右侧,但任何其他合理的位置(标题左侧或小部件的右上角)也可能有效.
我能想到的唯一方法是创建一个带有图标的QLabel,并将其视觉放置在QGroupBox的顶部,位于所需位置.但我发现这是一个丑陋的解决方案.
编辑
我知道有一种方法可以使用样式表indicator为可检查的 QGroupBox 设置用作任何图像,包括已检查和未检查状态.但是QGroupBox必须是可检查的等等.我想将这个标记(一个小图像)独立地添加到QGroupBox的可检查性中.