两个用户在Docker中

我试图在OpenJDK / Alpine基本映像中运行我的Spring Boot应用程序,并使用Docker的两个用户。

这是我想要支持的场景。 也许有更好的办法。

我需要提供生产支持,所以我想以devuser:appgroup作为devuser:appgroup附加,但我不允许我们的安全部门查看证书或机密,因此应用程序应该以appuser:appgroup运行,它也拥有所有的应用程序文件。

我可以用正确的(?)权限构build图像。

 /opt/app $ ls -l total 24552 -r-sr-xr-x 1 appuser appgroup 10632 Jun 27 12:59 app -r-------- 1 appuser appgroup 25101769 Jun 27 12:59 app.jar -r-xr-xr-- 1 appuser appgroup 327 Jun 27 12:59 app.sh -r-------- 1 appuser appgroup 316 Jun 27 12:59 application.yml -r-sr-xr-x 1 root root 10632 Jun 27 12:59 setup -r-xr-xr-- 1 root root 152 Jun 27 12:59 setup.sh 

当我指定USER appuser但是当我使用EXEC连接到正在运行的容器时,应用程序运行良好。我是appuser ,我可以看到configuration。

当我指定USER开发者时,应用程序不运行,但是当我使用EXEC连接到正在运行的容器时,我被阻止查看,因为我应该是。

正如你可以从文件权限中看到的,我正在尝试SUID,但似乎有点写入一个C程序来运行一个shell脚本,并没有为我工作。 (最后一部分可能缺乏经验。)

我将不胜感激任何帮助,谢谢。