在devops管道中集成开源应用程序代码的私有文件

时间:2016-11-27 16:05:24

标签: git docker private devops

我有一个Java应用程序,它作为我们整个项目的后端,我们所有的软件都是完全开源的。问题如下:

我们使用Google的几个API密钥,SendGrid到MySQL数据库身份验证密钥。所有这些都存储在*ngFor文件中。我们在GitHub上的代码是同上的,除了缺少这些文件。目前的解决方法是它们仅在我们部署到Heroku的Heroku远程上可用。每当我们希望部署更改时,我们都会切换到heroku分支,从master获取更改并重新绑定此分支,最后推送它。

我们很快转移到cycle.io运行容器化应用程序,所以我们基本上转移到Docker。我们将使应用程序停靠并部署MySQL Docker实例并相互通信。引用Cycle

  

环境允许您组织和沟通   容器。当您点击“开始”时在环境的容器上,   网络自动配置,并通知任何其他人   在其存在的环境中的容器。

Cycle.io允许我们自动链接来自Docker Hub的图像或具有application.properties的git存储库。它从那里拿起它然后自动部署它。

我的问题是,如何在代码构建测试部署管道中集成这些私有文件?。天真地,我在想某种方式注入'这些文件在构建之前。我不知道怎么做。我目前对docker部署的想法是

  • 在我的本地系统上构建一个可用的
  • 的docker镜像
  • 将它推送到Docker Hub到私有存储库并允许cycle.io,它与docker hub集成以从那里接收它
  • (我想整合Tavis / CI,idk如何)

是否有 SENSIBLE ,或者缺少其他单词, PRO 这样做的方法是什么?我们是一群希望遵循最佳实践的学生,这个应用程序将扩大规模。我们已经获得了部署和域名通行证的全额报酬,但我们并没有真正的专家指导。

1 个答案:

答案 0 :(得分:1)

Cycle允许您为每个环境配置环境变量,并且它们的处理方式与处理本地计算机上的环境变量的方式相同。这意味着您可以配置例如SENDGRID_API_KEY变量,将其设置为循环到您的API密钥(导航到环境 - >容器 - >配置)并让您的代码直接读取该变量。

您可以声明dockerfile(ENV SENDGRID_API_KEY="")中存在的环境变量,并且Cycle会预先填充这些变量,以便您只需填写该框并点击保存即可。您需要重新启动容器,但是您的变量应该可供您的程序使用,而无需管理移动文件。