Use*_*233 10 user-permissions docker docker-registry
我有兴趣使用Docker来托管我正在帮助开发工作的项目.但是我对它的适用性有一些疑问.
首先,我想知道是否可以保持源代码对潜在用户/客户隐藏?显然,Docker政策的一部分是代码是开放的,但有没有办法添加权限来锁定除指定用户/开发人员以外的任何人?
其次,就我们正在开发的产品而言 - 某些用户可能只希望访问产品的一个方面.有没有什么办法可以为docker注册表添加权限,以便客户只能访问他们要求的内容?
Docker 并不“托管项目”:它提供了指定执行环境(Dockerfile 和 docker build)并运行它的可能性。
\n“源”(Dockerfile 和项目源等资源)根本不必可用:只有构建的映像必须存在才能 docker 运行它。
\n该映像可以存储在私有注册表(docker 发行版)中,并且它不会包含项目的源,而仅包含从这些源构建并通过 Dockerfile 指令安装在映像中的交付(可执行文件)。
\n\n某些用户可能只想访问产品的一方面。
\n
一个简单的解决方案是:
\nKau\xc3\xaa Oliveira在评论中提问一个有趣的问题:
\n\n\n一旦容器运行,它不会阻止任何人访问代码。你可以在容器中做任何你想做的事
\n
您会在“容器映像是否包含应用程序源代码?”中找到类似的争论。 ”
\n当然,这取决于应用程序:
\n从该线程:
\n\n\n这个想法是,您的容器映像包含运行应用程序所需的一切,仅此而已(或至少尽可能少)。
\n例如,如果您有一个 Java 应用程序,您不想\xe2\x80\x99 必须提供完整的 JDK、所有构建工具和插件等,而最终,您只需要最终编译的版本Java 代码和 JRE。
\n
\n它减少了最终运行应用程序的整体图像大小和安全足迹。
并且(使用 PHP 中的应用程序,可以说是解释为):
\n\n\n为什么不从 GitHub 获取源代码呢?将您的凭据存储为
\nenv变量。这样,任何随机提取您图像的人都不会看到您的代码,如果那\xe2\x80\x99是您关心的问题不过老实说。PHP 代码不会显得如此复杂,以至于您不知道某些功能是如何完成的。如果有人想窃取你的想法,他们\xe2\x80\x99就会这么做,无论你如何试图混淆它。
\n
不确定 OP 是否需要这样做,但根据 VonC 寻求答案的上下文可能不完整:
如果项目有可共享的可交付成果,这些可交付成果与项目来源是分开的,那么您确实可以执行建议的操作。例如,您使用 Dockerfile 创建一个映像,该映像设置系统、获取源代码、将项目编译为可交付成果并删除源代码(或在其他地方编译并复制它)。这是构建此程序包并将其发布给您的客户的一种很好且省钱的方法。这是@VonC 在他的回答中提出的。
我想补充一点,例如,如果您正在查看一个 Web 系统,其中的代码与可交付成果分离起来有些困难,这将是棘手的。这可能是在像 HTML/PHP 之类的网络系统的情况下。
问题是,最终图像将与客户端服务器相同。它以一种或另一种方式完全可访问,并且其上的所有内容都是可读的。因此,虽然您根本不需要在系统上保留源代码和秘密(如果不需要),但您不能使用 docker 作为一种打包方法来提供隐藏源代码的独立系统。
所以你不能从图像中锁定任何人;您唯一能做的就是确保仅在编译项目时需要的任何内容在最终图像上都不可用。如果编译后不需要“秘密”东西,这只是一个解决方案。
| 归档时间: |
|
| 查看次数: |
5883 次 |
| 最近记录: |