如何将带有密码的maven settings.xml放在源代码管理中

时间:2018-11-24 03:38:03

标签: maven docker jenkins

我正在为jenkins奴隶构建一个docker映像。詹金斯奴隶将不得不将人工产物推入人工产物仓库或从人工产物仓库中拉出。

这是针对Java和Maven项目的。因此,我需要在Docker容器中包含settings.xml,以便可以在多个私有存储库中进行身份验证。

我的想法是在Dockerfile中复制一个settings.xml,但是由于它具有敏感信息(用户名,密码),因此我担心安全性。我可以在源代码管理中加密此内容吗?更重要的是,我可以避免人们下载该文件并能够使用加密的凭据吗?理想情况下,我应该具有一种机制来确保加密文件仅在docker容器的上下文中起作用。

1 个答案:

答案 0 :(得分:0)

据我了解,上载凭据应该仅对jenkins slave可用。这里有几个选项:

  1. 仅为jenkins奴隶创建特殊的settings.xml。禁止除admin之外的所有用户访问jenkins slave,因此密码是安全的。每个人都将使用另一个带有证书的settings.xml来下载。

  2. 带有env变量的参数settings.xml:

    <server>
       <id>repo</id>
       <username>${env.REPO_USER}</username>
       <password>${env.REPO_PASSWORD}</password>
     </server>
    

在jenkins奴隶上,将使用凭据插件https://support.cloudbees.com/hc/en-us/articles/203802500-Injecting-Secrets-into-Jenkins-Build-Jobs设置REPO_USER / PASSWORD。 用户会将这个变量设置为仅下载凭据。