原标题:云计算核心技术Docker教程:Docker Hub使用链接的私有子模块构建存储库
Docker Hub在您的源代码存储库中设置了一个部署密钥,从而可以克隆该存储库并进行构建。但是,此密钥仅适用于单个特定的代码存储库。如果您的源代码存储库使用私有Git子模块(或要求您克隆其他私有存储库以进行构建),则Docker Hub无法访问这些其他存储库,您的构建无法完成,并且在构建时间线中记录了错误。
要解决此问题,您可以使用SSH_PRIVATE环境变量设置自动构建,以覆盖部署密钥,并授予Docker Hub的构建系统对存储库的访问权限。
如果您正在为团队使用自动构建,请改用以下过程,并为您的源代码提供者配置服务用户。您也可以为单个帐户执行此操作,以限制Docker Hub对您的源存储库的访问。
1.生成仅用于构建的SSH密钥对,然后将公共密钥添加到源代码提供程序帐户。
此步骤是可选的,但允许您在不删除其他访问权限的情况下撤消仅构建的密钥对。
2.将密钥对的私有一半复制到剪贴板。
3.在Docker Hub中,导航到已链接私有子模块的存储库的构建页面。(如果需要,请按照此处的步骤配置自动构建。)
4.在屏幕底部,单击“构建环境变量”旁边的加号(+)。
5.输入SSH_PRIVATE新环境变量的名称。
6.将密钥对的私密部分粘贴到“值”字段中。
7.单击“保存”,或单击“保存并构建”以确认构建现在已完成。
您必须通过SSH([email protected]:some-submodule.git)而非HTTPS使用git clone配置私有git子模块。