docker工人,是否可以保护我的源代码并添加权限?

我有兴趣使用Docker来主持一个项目,我正在帮助开发工作。 不过,我有几个关于它的适用性的问题。

首先,我想知道是否有可能将源代码隐藏在潜在的用户/客户之中? 很明显,Docker策略的一部分是代码是开放的,但是有什么方法可以添加权限来locking指定用户/开发人员以外的任何人?

其次,就我们正在开发的产品而言 – 某些用户可能希望仅访问产品的一个方面。 有什么办法可以给Dockerregistry添加权限,以便客户只能访问他们请求的内容?

不确定这是否需要为OP,但取决于任务的情况下,VonC的答案可能是不完整的:

如果项目具有与项目来源分开的可交付成果,那么您确实可以做出build议。 例如,你使用一个Dockerfile来设置系统,获取源代码,将项目编译成可交付成果,并删除源代码(或者编译到其他地方并复制它)。 这是构build这个软件包并将其发布给您的客户的好方法。 这是@VonC在他的回答中提出的。

我想补充一点,如果你正在研究一个networking系统,代码在某种程度上与可交付成果是分开的,那将是非常棘手的。 这可能是在像HTML / PHP等networking系统的情况下。

事情是,最终的形象将是一样的客户端服务器。 它是这样或那样的,完全可以访问的,它上面的所有内容都是可读的。 所以,如果不需要的话,你根本不需要在系统上保存源代码和秘密,但是你不能使用docker作为一种封装方法来提供隐藏源的自包含系统。

所以你不能locking任何人的形象; 你唯一能做的就是确保只有编译你的项目所需的东西在最终的图像上不可用。 而这只是一个解决scheme,如果编译后不需要“秘密”的东西。

Docker不会“托pipe项目”:它提供了指定执行环境(Dockerfile和Docker构build)并运行它的可能性。

“源代码”(Dockerfile和像你的项目源代码的资源)根本不需要提供:只有构build好的映像必须存在才能让docker运行它。
该映像可以存储在私有registry(docker distribution)中,并且不会包含项目的来源,而只包含从这些来源构build并由Dockerfile指令安装在映像中的交付(可执行文件)。

某些用户可能只希望访问产品的一个方面。

一个简单的解决scheme是有:

  • 几个图像(每一个与你的产品安装在其中的某个方面)
  • 几个docker图像注册pipe理机构(每个图像注册pipe理机构只能访问您的某个客户群,仅包含相关图像)